ローカルファイルの対称暗号化のために、CLIスクリプトでgpg2
を呼び出しています。テキストベースのUIで、CLIを介してgpg-agent
パスフレーズを要求するようです。パスフレーズを入力している限り、すべてが正常に機能します。ただし、そうでない場合は、最終的に次のメッセージで失敗します。
gpg-agent[15338]: command get_passphrase failed: Operation cancelled
gpg: cancelled by user
gpg: error creating passphrase: Operation cancelled
gpg: symmetric encryption of `XXXX.tar' failed: Operation cancelled
このタイムアウトを完全にオフにする方法はありますか?
何かを入力するまで、パスフレーズプロンプトを画面に表示したままにしておく必要があります。
Gpg-agent.conf( gpg-agent(1) を参照)で、次のオプションを試してください。
pinentry-timeout 0
pinentry-program /usr/bin/pinentry-curses --timeout 0
(ただし、pinentry-tty
を使用する方が多少良いかもしれません。)
私にとってうまくいったのは(gpg 2.1.11)、pinentry-timeout
ファイルに以下を追加して、~/.gnupg/gpg-agent.conf
オプションを大きな値(24時間など)に設定することでした。
# time until pinentry closes in seconds
pinentry-timeout 86400
ここで解決策が見つかりました: https://dev.gnupg.org/T324
遅延は、ピンエントリがGNOMEキーリングにクエリを実行することによって発生します。 gpg-agent.confにno-allow-external-cache
を追加するか、gnome-keyring
を削除して、現在実行中のgpg-agentを終了します:gpgconf --kill gpg-agent