我正在尝试通过 ssh 远程启动 rngd 守护进程。不幸的是,在我登录到机器之前它似乎无法运行。我使用的命令是:
ssh -n -o StrictHostKeyChecking=no -i ... user@host "sudo rngd \
-r /dev/urandom -o /dev/random -t 10"`
当我打电话时,cat /proc/sys/kernel/random/entropy_avail
我得到的值很低(150左右),这让我认为 rngd 没有运行。但是,如果我登录到该框,请等待几秒钟并检查池是否已满(3000 秒)。
答案1
您没有向我们提供大量信息(例如,在什么操作系统下?),但我的想法是您不应该这样做。
假设你正在使用 Linux,/dev/urandom
并且/dev/random
已链接。/dev/random
仅在拥有随机位时才给出随机位,并/dev/urandom
采用相同的随机位池,但/dev/random
无限期地扩展这些位。
您的命令只是将那些扩展的伪随机位反馈到/dev/random
中/dev/random
。
答案2
我的错误是使用 " 而不是 '。据我所知,使用 "" 会导致 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
、启动它并添加一个条目以使其在引导时启动。