リリースのGnuPG 2.1.16から(現在は2.1.17)のエントロピーを待ってブロックするだけで最初の呼び出しで。
注:これは、キーを生成する試みではなく、ファイルを復号化してエージェントを起動するためだけのものです。
初めてgpg-agentを起動すると、直接gpg2 file.gpg
またはのようなアプリケーションを使用してpass
pinentryが表示され、パスフレーズを入力してヒットEnterすると、約15秒間ハングします。
default-cache-ttlのウィンドウ内の後続のすべての呼び出しは、すぐに実行されます。
--debug-all
モードで実行すると、ハングが発生する期間が出力されます1:
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
...
エントロピープールを補足するためにrng-toolsをインストールしました。
cat /proc/sys/kernel/random/entropy_avail
4094
そして、RNG-ツールを持っていなかったあるいはGnuPGの同じバージョンのマシンと比較しhaveged:何の遅延を示さないインストールし、
cat /proc/sys/kernel/random/entropy_avail
3783
だから、そこに表示されたプール内に十分なエントロピーこと。これはカーネル4.8.13と4.9でテストされました。
gpgは別のプールを使用しますか?エージェントを開始するときに、十分なエントロピーを提供する、または15秒の遅延を解消するにはどうすればよいですか?
1. 完全なデバッグログ。
rng-tools
ここで説明するようにインストールしましたか?serverfault.com/questions/214605/gpg-not-enough-entropy