通过 ssh 启动时守护进程未运行

通过 ssh 启动时守护进程未运行

我正在尝试通过 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、启动它并添加一个条目以使其在引导时启动。

相关内容