web-dev-qa-db-ja.com

パスフレーズの収集中にgpg-agentがタイムアウトするのを防ぐ方法は?

ローカルファイルの対称暗号化のために、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

このタイムアウトを完全にオフにする方法はありますか?

何かを入力するまで、パスフレーズプロンプトを画面に表示したままにしておく必要があります。

7
rcampbell

Gpg-agent.conf( gpg-agent(1) を参照)で、次のオプションを試してください。

pinentry-timeout 0
pinentry-program /usr/bin/pinentry-curses --timeout 0

(ただし、pinentry-ttyを使用する方が多少良いかもしれません。)

1
user1686

私にとってうまくいったのは(gpg 2.1.11)、pinentry-timeoutファイルに以下を追加して、~/.gnupg/gpg-agent.confオプションを大きな値(24時間など)に設定することでした。

# time until pinentry closes in seconds
pinentry-timeout 86400
0
Justin Ludwig

ここで解決策が見つかりました: https://dev.gnupg.org/T324

遅延は、ピンエントリがGNOMEキーリングにクエリを実行することによって発生します。 gpg-agent.confno-allow-external-cacheを追加するか、gnome-keyringを削除して、現在実行中のgpg-agentを終了します:gpgconf --kill gpg-agent

0
a7f4