我正在尝试通过运行来增加几个 Ubuntu 13.04 ec2 实例的熵
ssh -n -o StrictHostKeyChecking=no -i ... user@host "sudo rngd -r /dev/urandom -o /dev/random -t 10"
来自远程机器。但是,在我登录虚拟机之前,rngd 似乎什么都没做。至少如果我登录并立即运行,cat /proc/sys/kernel/random/entropy_avail
它会给出大约 150 的数字。几秒钟后,它会给出 3000 左右的数字。如果我使用 ssh 远程运行cat /proc/sys/kernel/random/entropy_avail
而没有登录,我也会得到大约 150 的结果。
这是 rngd 正在执行的某些守护进程的一般问题吗?
答案1
我的错误是使用"
而不是'
。据我所知,使用"
会导致 shell 在本地计算机上运行 ssh 命令时解释字符串。我不确定传递给远程计算机的是什么,可能是命令的结果。'
会导致 shell 传递未改变的字符串。
ssh -n -o StrictHostKeyChecking=no -i ... user@host 'sudo rngd -r /dev/urandom -o /dev/random -t 10'
有效。最后我决定改用 haveged:
ssh -n -o StrictHostKeyChecking=no -i ... user@host 'sudo apt-get install haveged'
这就是需要做的全部。它将安装 haveged,启动它并添加一个条目以使其在启动时启动。