**We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, utilize the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 210 more bytes)**
我需要一种生成密钥的方法可以正常工作,因为我要尝试执行的操作显然失败了。
#1 楼
您看过RNG吗?Fedora / Rh / Centos类型:
sudo yum install rng-tools
关于deb类型:
sudo apt-get install rng-tools
进行设置。然后在生成密钥之前运行
sudo rngd -r /dev/urandom
。 参考:http://it.toolbox.com/blogs/lim/how-to-generate-enough-entropy-for-gpg-key-generation-process-on-fedora-linux- 38022
#2 楼
我能够通过apt-get install rng-tools
生成密钥,在另一个SSH窗口中打开
gpg --gen-key
返回到您的第一个SSH会话并运行
sudo rngd -r /dev/urandom
让此运行直到gpg生成您的密钥!
评论
我绝对建议不要使用/ dev / urandom来生成任何重要的密钥。
–安德鲁·巴伯(Andrew Barber)
2010-12-21在7:09
@AndrewBarber废话。这是推荐的方法。
– David Schwartz
16年5月25日在19:39
@AndrewBarber它是专门为此目的而设计的。基本上,/ dev / random是设计错误。它应该只在第一次(一次)调用(第一次启动时)阻塞时,才尚未收集到任何熵。就像在其他操作系统上一样。相反,我们现在有两个游泳池。只是永远不要使用/ dev / random它没有优势。
– Stijn de Witt
17年6月27日在8:09
@AndrewBarber您会推荐什么?
–qodeninja
18年8月14日在22:23
#3 楼
要检查当前可用的熵字节数,请使用cat /proc/sys/kernel/random/entropy_avail
熵存储桶为4096字节大,可以很快耗尽。
使用这个小型的“ readspeed”工具(http://1wt.eu/tools/readspeed/),您可以测量不同方法填充信息存储桶的速度。
例如,启动:
$ ./readspeed < /dev/random
并移动鼠标。您会看到'readspeed'在填充后立即清空熵存储桶,并且在移动鼠标时会充满一点。
尝试不同的方法,似乎键盘输入和鼠标机芯是补充水桶的最有效方法。网络传输和硬盘驱动器副本影响不大。
最后,有一些可用的熵生成设备,例如:http://www.entropykey.co.uk/。 />
评论
urandom中没有“低质量熵”。 urandom调用与/ dev / random相同的代码。这是一个神话,不应该传播。参见例如sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers或以下视频:media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy
–塞巴斯蒂安·维辛格
15年12月30日在11:29
这个答案是5岁。我们认为当时的urandom并不像随机的那么安全,但是此后情况发生了变化,并且urandom被认为是安全的。
–朱利安·韦恩特(Julien Vehent)
15年12月31日在15:10
事实是从一开始就是安全的。这些警告在7年前也是错误的。
– Stijn de Witt
17年6月27日在8:11
#4 楼
+1为rng-tools如果您陷入我的境地-没有权限在没有输入硬件(无声卡)的无头服务器上安装新软件(rng-tools),键盘,鼠标)。您可以从连接到同一服务器的另一个终端运行此简单代码,以添加到熵。无论您是在启动
gpg --gen-key
之前还是之后开始运行此命令都没有关系,$ nice -n 19 bash
$ until [ $COUNT -lt 1 ]; do
let COUNT=`cat /proc/sys/kernel/random/entropy_avail`
echo "`date` COUNTER $COUNT"
done
第一行是启动一个具有较低优先级的新bash shell(我需要很好在许多用户共享的服务器上)。
直到循环是无限的,所以请记住在生成密钥后就将其中断。
它所做的所有事情都会导致网络流量增加熵。它还监视entropy_avail计数器,以显示gpg如何填充和清空另一端。在我的情况下,计数器迅速填满到64,然后清空为0(猜测gpg在64的块中拾取)。我在服务器上等待4096位密钥生成超过3个小时。开始运行此脚本后,不到5分钟即可完成。
评论
我也没有远程服务器上的root用户访问权限,因此可以创建一些熵。我认为条件应更改为[$ COUNT -lt 0]。因为对于一个熵实际上很少的系统,它有时达到0并停止。 GPG确实很饿。
–阿杰(Ajay Brahmakshatriya)
18-10-18在23:58
谢谢,这对于我在气密的盒子上产生一些迷惑物应该足够了。除了我不使用日期,因为那是可以预见的
– Grepsedawk
19年5月24日19:45
#5 楼
我被束缚并决心在无头的Ubuntu 14.04服务器上生成熵,以便使用gpg --gen-key
生成4096个密钥。有一个用于生成熵的程序包称为Haveged。安装示例:sudo apt-get install haveged
我必须安装
sudo apt-get install rng-tools
,因为它是以下测试中的依赖项。一个测试示例,查看是否熵是由Haveged产生的:
cat /dev/random | rngtest -c 1000
任何随机数生成器都可以接受很少量的故障,但是您可以期望使用鼠标悬停时经常看到998-1000成功。
我在这里的教程中发现了这一点:
https:// www .digitalocean.com / community / tutorials / how-to-setup-additional-entropy-for-cloud-servers-using-haveged
运行
gpg --gen-key
后我现在有了密钥#6 楼
haveged
是最好的方法,但是,如果您无法安装任何东西,则可以手动生成熵。此方法使gpg --gen-ken
在我的计算机上可以在1-2分钟内完成(与haveged
相比,只需10s即可完成)。因此大约慢了10倍。在
gpg --gen-key
运行时,在另一个终端上运行它: while true; do
# print entropy available
cat /proc/sys/kernel/random/entropy_avail
# write a 1 MB stream of zeros to /tmp/foo
# "conv=fdatasync" flushes the disk cache
dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync
done
一个衬纸:
while true; do cat /proc/sys/kernel/random/entropy_avail; dd bs=1M count=1 if=/dev/zero of=/tmp/foo conv=fdatasync; done
#7 楼
在arch中运行pacman-key --init
时遇到了这个问题。此处的其他解决方案对我而言效果不佳,但是我发现对路由器进行泛洪仅能很好地工作:ping -f ip.of.my.router
#8 楼
好吧,与这里介绍的解决方案相比,它比我想的要容易:ls -R /
上面命令提供的随机字节足以提供所需的用于生成RSA / 4096密钥对的熵。
来自:https://www.thingy-ma-jig.co.uk/blog/22-01-2010/generate-entropy-gnupg
评论
另外,更重要的是,如果您在Ubuntu上,则可以使用sudo apt-get install rng-tools,而不是像Fedora那样使用sudo yum install rng-utils,因为Ubuntu没有rng-utils软件包。
–詹森·斯威特(Jason Swett)
2011年1月17日17:50
该软件包在Fedora和EL6上都被称为rng-tools,因此我怀疑链接文章中有错字。顺便说一句,最好在此处提供答案的重要部分,并提供链接以供参考,以防将来链接失效。
–迈克尔·汉普顿
2012年12月31日在2:40
urandom中没有“低质量熵”或“伪熵”。 urandom调用与/ dev / random相同的代码。无需在CSPRNG中添加额外的随机性(除了在引导时,而且您的发行版应该照顾它)。这是一个神话,不应该传播。参见例如sockpuppet.org/blog/2014/02/25/safely-generate-random-numbers或以下视频:media.ccc.de/v/32c3-7441-the_plain_simple_reality_of_entropy
–塞巴斯蒂安·维辛格
2015年12月30日11:30
这是关于乌兰多姆神话的另一个好例子。
–安德鲁(Andrew B)
15年12月31日在15:46
基本上,GPG已损坏,无法从/ dev / random读取,然后阻塞,即从/ dev / urandom阻塞,永远不会阻塞。网络上充满了有关它的问题。
– Stijn de Witt
17年6月27日在8:06