GPG 依赖于熵生成

Riv*_*tya 3 ubuntu gnupg

在尝试生成 GPG 密钥时(使用 gpg --gen-key),它可能会在发出消息后挂起:

没有足够的随机字节可用。请做一些其他的工作,让操作系统有机会收集更多的熵!(还需要 278 个字节)

gpg (GnuPG) 1.4.16

Ubuntu 14.04.2 LTS

Riv*_*tya 8

编辑:一般不应遵循此建议,因为它不会生成安全密钥。有关详细信息,请参阅 juacala 的回答或stackoverflow.com/questions/11708334

原来这是一个已知问题:https : //bugs.launchpad.net/ubuntu/+source/gnupg/+bug/706011

我通过安装 rng-tools 解决了这个问题。

IE sudo apt-get install rng-tools

然后gpg --gen-key按预期工作。

  • 根据答案中引用的链接,如果您要将密钥用于现实世界的目的,则不应使用 rng-tools,因为它不会生成真正的熵,并且您的密钥可能不安全。 (2认同)

jua*_*ala 5

尽管 rng-tools 可以工作,但不建议这样做,因为它不提供真正的熵。请参阅此处的讨论:https : //bugs.launchpad.net/ubuntu/+source/gnupg/+bug/706011

对于对此感到沮丧的用户,以下是我在没有鼠标/桌面的服务器上发现的一些有用的东西。

1) 完成创建 GPG 密钥的过程。如果它挂起等待更多的熵,则转到下一步。

2)您可以通过打开终端并键入(这将每秒查看该文件)来查看您的系统有多少熵:

watch -n1 cat /proc/sys/kernel/random/entropy_avail
Run Code Online (Sandbox Code Playgroud)

3)打开第三个终端来生成你的熵。您可以尝试各种方法来尝试提高熵。以下是我注意到的一些事情,使熵增加到足以使 gpg 工作。请注意,这有点随机(无意双关语)。有时做某事会增加熵;但是当我再次这样做时,它不会:

从互联网上获取一个大文件

wget http://us1.php.net/get/php-7.2.2.tar.bz2/from/this/mirror
Run Code Online (Sandbox Code Playgroud)

做一些向终端打印很多东西的事情:

ls -R /
sudo find /folder/with/lots/of/files/ -type f | xargs grep 'simple string that shows up in lots of files'
Run Code Online (Sandbox Code Playgroud)

4)如果你正在做的事情没有增加entropy_avail,那么试试别的。