如何为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密钥已创建。