我正在尝试在Ubuntu 16.10上生成一个GPG密钥,而GPG正在永远.
我google了一下,发现了一些网站,包括StackExchange上的一些问题,建议运行像rngd这样的熵生成器来帮助系统更快地生成随机数.
其中一些网站还鼓励检查/ proc / sys / kernel / random / entropy_avail,声明在他们的系统上,它在运行GPG之前报告了四位数字,在运行时报告了两位到一位数字.
我目前正在我的电脑上运行GPG;它已经运行了至少半个小时,我得到了这个
$cat /proc/sys/kernel/random/entropy_avail
3644
这个数字会随着时间的推移而增加,并且很少会减少(在写完这句话之后它是3801).我没有运行任何随机数生成器.实际上,如果我尝试运行一个(例如sudo rngd -fr / dev / random,它会降到50左右;如果我使用/ dev / urandom,它会保持在3000左右).
任何人都可以帮我弄清楚我的系统到底出了什么问题?
我在Linux 4.8.0-37-generic,gpg(GnuPG)2.1.15,libgcrypt 1.7.2-beta.
解决方法:
在升级到Debian 9后,我最近遇到了类似的问题.一些依赖于随机数的程序在最近的Linux版本中更改了源代码/随机生成器例程,这使得它们更依赖于系统的熵.
安装守护进程似乎提供了一致的随机数池.这样做:
sudo apt-get install haveged
现在,需要熵的不同程序需要伪造的守护进程,尤其是在熵通常较低的VM和iOT(例如树莓等)中.
从男人的愤怒:
NAME
haveged
– Generate random numbers and feed Linux’s random device.DESCRIPTION
haveged
generates an unpredictable stream of random numbers harvested
from the indirect effects of hardware events on hidden processor state
(caches, branch predictors, memory translation tables, etc) using the
HAVEGE (HArdware Volatile Entropy Gathering and Expansion) algorithm.
The algorithm operates in user space, no special privilege is required
for file system access to the output stream.Linux pools randomness for distribution by the
/dev/random
and/dev/urandom
device interfaces. The standard mechanisms of filling the/dev/random
pool may not be sufficient to meet demand on systems with
high needs or limited user interaction. In those circumstances,haveged
may be run as a privileged daemon to fill the/dev/random
pool whenever
the supply of random bits in/dev/random
falls below the low water mark
of the device.