如何为GPG密钥生成过程生成足够的"熵"
时间:2020-03-21 11:44:36 来源:igfitidea点击:
另一个我正在尝试生成GPG密钥。
这需要很长时间,我已经没时间了,失去了耐心等待。
即使我等待近一个小时,GPG也没有产生。
当时我不知道GPG关键生成过程,我以前从未创建过。
所以我在谷歌中dig一点,发现我需要为GPG重点生成过程产生足够的熵。
如果你曾经在这种情况下,请阅读。
这并不困难。
为GPG重点生成过程产生足够的"熵"
我输入了以下命令以创建GPG密钥:
$gpg --gen-key
而且,我收到了这条消息:
[...] 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. gpg: agent_genkey failed: No pinentry Key generation failed: No pinentry
正如我们在上面的命令中,它显示了"无拼音"包。
确保已安装pinentry-gtk或者pinentry-qt软件包。
要在基于ARCH的系统上安装此软件包,请运行:
$sudo pacman -S pinentry
基于RPM的系统:
$sudo yum install pinentry
在基于DEB的系统:
$sudo apt-get install pinentry
然后,创建或者编辑GPG-Agent.conf文件:
$sudo nano ~/.gnupg/gpg-agent.conf
并添加以下行之一:
pinentry-program /usr/bin/pinentry-curses
或者,
pinentry-program /usr/bin/pinentry-qt
保存并关闭文件。
重新启动系统使更改生效。
现在,让我们创建GPG密钥:
$gpg --gen-key
这是我其中击中了几个小时。
我运行了这个命令,等待了一个小时。
它说我没有足够的熵,并没有创造密钥。
要创建足够的熵,我们需要安装一个名为"rng-tools"的包。
在Arch Linux及其衍生品,运行:
$sudo pacman -S rng-tools
在Rhel及其衍生物上,运行:
$sudo yum install epel-release
$sudo yum install rng-tools
在Debian/Ubuntu和衍生品,运行:
$sudo apt-get install rng-tools
如果上述包不可用,请尝试安装"RNG-Utils"。
安装此实用程序后,运行以下命令以获得足够的熵:
$sudo rngd -r /dev/urandom
重复上述命令,直到我们有足够的熵创建GPG密钥。
让我们检查当前使用命令可用的熵数的字节数:
$cat /proc/sys/kernel/random/entropy_avail
示例输出:
3103
现在,尝试再次创建GPG键。
这次GPG密钥生成过程将更快。
$gpg --gen-key
输入姓名和邮件ID,然后按Enter键。
输入密码短语:
重新输入密码:
成功! GPG密钥已创建。