在CentOS服务器上使用gpg生成key时,最后一步按提示,需要做敲击键盘等行为来生成随机数,此时会卡住,敲击什么键都没有用,查阅资料是熵池不够用了,需要手动给内核熵池填随机数。
了解到 /dev/random 和 /dev/urandom 是字符型设备。可以在用户空间通过read系统调用读这两个设备文件以此获取随机数。
区别:
- /dev/random 如果内核熵池的估计值为0时,即熵池不足的时候,/dev/random将被阻塞
- /dev/urandom 没有这个限制,它继续使用软件算法继续生成随机数,此时的随机数算是伪随机数。
gpg生成密钥的时候,需要用到随机数,如果熵池不足的时候,会要求我们敲键盘,晃鼠标,用urandom给内核熵池喂大量的随机数。
1 | yum install rng-tools |
安装rng-tools工具,该工具可以像指定文件生成随机数。这里,我们不需要退出原正在执行gpg的genkey命令的console,新建一个终端,执行如上命令。命令执行完成后,原来卡住的界面就恢复运行了。