gpg-agentを使用してcronジョブでパスワードを復号化します。

gpg-agentを使用してcronジョブでパスワードを復号化します。

gpg-agentを使用してパスワードを復号化する必要がある2つのスクリプトがあります。端末で実行すると、すべて正常に実行されます。問題は、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

しかし、私が試したことは何も機能しません。

関連情報