PGP不对称 – 没有足够的随机字节可用。 请做一些其他的工作,使操作系统有机会收集更多的熵
设置:虚拟机上的Ubuntu服务器,6核心和3GB的RAM。
当我试图通过GPG
生成一个asymmetric key pair
像这个gpg --gen-key
。 我得到以下错误:
Not enough random bytes available. Please do some other work to give the OS a chance to collect more entropy!
我试图谷歌一点点。 这是我意识到的,我需要启动另一个terminal,并键入cat /udev/random
– >它随机生成一系列随机生成的值,以增加熵。
我没有看到在这里的任何变化watch cat /proc/sys/kernel/random/entropy_avail
它仍然坚持给我同样的错误
运行以下命令:
find / > /dev/null
这帮助我迅速完成了我的关键一代。
尝试安装haveged
,这是一个守护进程,这有助于系统为您的密钥生成随机数字。
sudo aptitude install haveged
步骤1首先运行一个shell,让它运行ls / -R
第2步现在尝试生成将完成的密钥
欲了解更多信息,请访问http://alsdias.blogspot.jp/2012/11/gpg-not-enough-random-bytes-available.html
我在观看/proc/sys/kernel/random/entropy_avail
值时尝试了不同的技巧。 但试图做一个整个磁盘MD5哈希真的给了我的系统熵类固醇没有安装额外的软件包。
find /dev/disk/by-uuid/ -type l | xargs md5sum
尝试安装rngd。 如果你的CPU如果合理的现代化,将会有一个内置的硬件随机数发生器,而rngd将使用它来产生足够的熵。
注意有人告诉你运行rngd -r /dev/urandom
。 虽然这将摆脱你的错误,它通过伪造熵并导致不安全的密钥。
这是我find的解决scheme
我不得不做gpg --gen-key --no-use-agent
之后,在另一个terminal,我发射了cat /dev/random
幸运的是,我工作在结束:)
尝试在命令行运行(在另一个terminal选项卡中) $cat /proc/sys/kernel/random/entropy_avail
,它返回小于100-200,然后出现错误,安装rng-tools $sudo apt-get install rng-tools
这应该已经解决了这个问题,检查前面的标签,你有钥匙
将鼠标移动30秒左右,然后尝试以下操作:
base64 /dev/urandom
这将开始打印出随机代码到屏幕上。 在几分钟内,将会产生足够数量的伪随机数据来完成密钥生成。
我做apt-get安装libreoffice和apt-get删除libreoffice *几次。 那就是诀窍。 select一些其他的大胖程序供自己使用。
我试着解决。 我使用Fedora 25,gpg1和gpg2已经安装为机器标准。
宣布问题 。
如果你使用的是Fedora 25操作系统,我可以在otrust.tmp看到带有ownertrust的gpg信息(请删除旧的trustdb.gpg)。 并且必须创build新的trustdb.gpg。
请在terminal命令中按照此命令。 (不一定要root模式)。 您可以尝试使用以下命令重新创buildtrustdb:
cd〜/ .gnupg
gpg2 –export-ownertrust> otrust.tmp
rm trustdb.gpg
gpg2 –import-ownertrust <otrust.tmp
那么你可以使用
gpg –list-secret-keys –keyid-format LONG
然后以asci格式导出。
gpg –armor –export“type-here-your-secKEY”
这应该让你摆脱困境:
sudo apt-get install haveged rng-tools
在gpg消息的结尾,你看到括号(剩余125字节)
gpg需要一些你必须input的随机字节。所以按Ctrl-z键入一个随机的x(括号中的数字)字符不一定有意义,如:dfkheuhasdkjvdaiugekjfhflsdfhuhggskdfjhsjdf
然后做2或3次,GPG显示一个答案告诉你它已经完成了密钥的生成:)
运行$ sudo rngd -r /dev/urandom
然后运行$ gpg --user-agent
和$ ps -ef | egrep rngd
$ ps -ef | egrep rngd
(显示$ ps -ef | egrep rngd
进程号,例如9999)
然后$ sudo kill 9999
在我的Ubuntu 13.04系统上为我工作。
在Ubuntu下使用另一个随机的制造商:
mv /dev/random /dev/chaos && ln -s /dev/urandom /dev/random
然后重试你的gpg命令