使用 pdcp 时主机密钥验证失败(退出代码 255)

使用 pdcp 时主机密钥验证失败(退出代码 255)

我正在尝试在我们所有的机器上一台一台地安装特定的软件,所以我决定使用pdsh.默认情况下,它将同时在多台机器上并行运行,但我将使用该-f选项将其限制为一次在每台机器上运行。

只是为了玩它,我决定运行以下命令,但出现错误:

david@machine0:~$ sudo pdcp -w machine1 abc.tar.gz /home/david
machine1: Host key verification failed.
pdcp@machine0: machine1: ssh exited with exit code 255

我在这里做错了什么?

答案1

如果你四处搜寻,会发现什么

主机密钥验证失败

意味着,您将找到足够的信息来解决您的问题。您的情况的问题是您在用户(sudo)pdcp下运行。root这真的是你想要的吗?如果没有,则不运行它sudo,它将 Just Work TM

如果您确实需要pdcp在以下环境下运行sudo,则还需要在以下环境下进行主机密钥验证sudo

sudo ssh machine1

会让你这样做。它将提示您进行密钥验证,然后将新条目存储在~/.ssh/known_hosts.你pdcp应该从那个时候开始工作。


手册页的最后一条注释pdcp

当使用 ssh 进行远程执行时,ssh 的 stderr 会与远程命令的 stderr 折叠在一起。当由 pdcp 调用时,如果主机密钥更改,则 ssh 无法提示确认;如果 RSA 密钥配置不正确,则无法提示输入密码等。最后,只有当底层 ssh 实现支持它时,连接超时才可以通过 ssh 进行调整,并且 pdsh 已构建为使用正确的选项。

如果您想使用,您需要设置 pubkey 身份验证pdcp

答案2

“主机密钥验证失败”来自底层 SSH 进程。看磷酸二氢钙(1):

当使用 ssh 进行远程执行时,ssh 的 stderr 会与远程命令的 stderr 折叠在一起。当由 pdcp 调用时,如果主机密钥更改,则 ssh 无法提示确认;如果 RSA 密钥配置不正确,则无法提示输入密码等。

解决方案是连接到中的所有主机all_hosts 一次之前并接受其主机密钥或禁用(!)严格的主机密钥检查对于所述主机:

$ cat ~/.ssh/config
主持人大卫·迈克尔·何塞
        StrictHostKeyChecking 否

$ pdcp -R ssh -w ^all_hosts abc.tar.gz /home/david
sid0:警告:将“david,xxxx”(ED25519)永久添加到已知主机列表中。
[...]

相关内容