尝试为服务器生成密钥。
gpg --gen-key
我们需要生成很多随机字节。在素数生成期间执行一些其他操作(在键盘上键入、移动鼠标、使用磁盘)是个好主意;这使随机数生成器有更好的机会获得足够的熵。
它只是挂在那里。
还有一个错误:
无法连接到“/root/.gnupg/S.gpg-agent”:没有这样的文件或目录
这似乎在之后消失了:
gpg-agent --daemon
GPG_AGENT_INFO=/tmp/gpg-4c5hyT/S.gpg-agent:1397:1; 导出 GPG_AGENT_INFO;
#GPG_AGENT_INFO=/tmp/gpg-4c5hyT/S.gpg-agent:1397:1; export GPG_AGENT_INFO;
gpg --gen-key
...
但同样,它停留在“......获得足够的熵”。
没有“++++++++++++++++++++++++++++++++++++++++++++”从论坛帖子看起来应该在生成密钥时预期。
我试过重新安装软件包,但似乎一切都取决于 gpg。
我读过其他人在 centos 6 上也遇到过这个问题(而 centos 5 工作正常)。
中没有什么了不起的/var/log/*
。
关于从这里去哪里的任何想法?
谢谢。
当
gpg --gen-key
命令像这样挂起时,登录到另一个shell并执行以下命令:(此命令基本上从您的硬盘驱动器读取并丢弃输出,因为写入
/dev/zero
不会执行任何操作。)几秒/分钟后,密钥生成命令应该完成。
对于更可靠的解决方案,您可以安装随机数生成器相关的实用程序,这将确保您始终有足够的随机字节。
然后编辑
/etc/sysconfig/rngd
并添加EXTRAOPTIONS="-r /dev/random"
启动服务
瞧,你从此过上了幸福的生活:)
https://gist.github.com/franciscocpg/1575d286548034113884c3185ca88681
打开一个 ssh 会话
sudo apt-get install rng-tools
在另一个 SSH 窗口中打开gpg --gen--key
返回到您的第一个 SSH 会话并运行sudo rngd -r /dev/urandom
让这个运行直到 gpg 生成您的密钥!然后你可以杀死rngd
sudo kill -9 $(pidof rngd)
之前给出的两条评论都很好。但这只是我的 2 美分。
RHEL/centos 6 和 entropy 的问题在于它们是 tickless 内核。因此,这些内核本身并不能产生足够的熵。您必须连接一些键盘,甚至必须移动一些鼠标,或者如上所述使用 dd。
rngd 守护进程很棒,大多数商业实体都在使用它。
然而,我见过的最好的方法是使用专用的 TPM 设备。它们是非常昂贵的小型硬件。您放置它们,rngd 使用来自硬件源的随机真熵。据我所知,富士通有一些不错的TPM设备。
是的,这三种方法几乎涵盖了熵部分。
扭曲其他响应,但至少有一个衬里而不是根。
密钥生成选项包含
Output-key.txt 包含我的超级密钥。
EXTRAOPTIONS="-r /dev/urandom" 为我工作而不是 EXTRAOPTIONS="-r /dev/random"
我已经尝试了所有的解决方案,发现
haveged
即使在其他解决方案不起作用时效果最好(尤其是在没有太多用户输入或活动的无头服务器上)。yum install haveged
apt install haveged
它启动
haveged
将保持/dev/random
充满熵的守护进程服务。--key-gen
应在不到一分钟内完成。您可以通过运行来验证
cat /dev/random
。通常,它会很快耗尽熵并暂停。这就是--key-gen
挂起的原因。但安装后haveged
,cat /dev/random
应该持续提供输出。我是怎么做到的:
pacman -S community/rng-tools
vim /etc/conf.d/rngd
添加RNGD_OPTS="-r /dev/urandom"
systemctl enable --now rngd
gpg-agent --daemon
gpg --full-gen-key
即使在
$GNUPGHOME
设置为指向自定义目录时也能正常工作。切换到 gpg2 对我有用。
由于权限问题,其他解决方案都没有。