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命令

Interesting Posts