从2.1.16(当前为2.1.17)发布的gnupg块仅在首次调用时等待熵。
注意:这不是尝试生成密钥,只是为了解密文件并启动代理。
第一次启动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-tools或没有安装过ghgn的具有相同gnupg版本的计算机相比,该计算机没有延迟:
cat /proc/sys/kernel/random/entropy_avail
3783
因此,池中似乎有足够的熵。这在内核4.8.13和4.9上进行了测试。
gpg是否使用其他池?启动代理时,如何提供足够的熵或消除15s延迟?
1. 完整的调试日志。
rng-tools
这里安装了as的说明吗?serverfault.com/questions/214605/gpg-not-enough-entropy