gpg-agent를 사용하여 cron 작업에서 비밀번호를 해독합니다.

gpg-agent를 사용하여 cron 작업에서 비밀번호를 해독합니다.

gpg-agent를 사용하여 비밀번호를 해독해야 하는 두 개의 스크립트가 있습니다. 터미널에서 실행하면 모두 정상적으로 실행됩니다. 문제는 cron을 통해 실행할 때 다음 메시지와 함께 모두 실패한다는 것입니다.

gpg: problem with the agent: End of file
gpg: decryption failed: No secret key

나는 이것을 가지고있다 /etc/profile.d/gpg-agent.sh:

if [ $EUID -ne 0 ] ; then
    envfile="$HOME/.gnupg/gpg-agent.env"
    if [[ -e "$envfile" ]] && kill -0 $(grep GPG_AGENT_INFO "$envfile" | cut -d: -f 2) 2>/dev/null; then
        eval "$(cat "$envfile")"
    else
        eval "$(gpg-agent --daemon --enable-ssh-support --write-env-file "$envfile")"
    fi
    export GPG_AGENT_INFO  # the env file does not contain the export statement
    export SSH_AUTH_SOCK   # enable gpg-agent for ssh
fi

에이전트가 실행 중인지 확인할 수 있습니다.

% pgrep gpg-agent
510

cron 작업은 내 crontab에 있습니다. 다음과 같은 스크립트를 실행해 보았습니다.

*/30 * * * * source /home/user/.gnupg/gpg-agent.env && export GPG_AGENT_INFO && /script

하지만 내가 시도한 것은 아무것도 작동하지 않습니다.

관련 정보