三台服务器上的 SSH 和密码

三台服务器上的 SSH 和密码

我有三台服务器 A、B 和 C。我需要做的是运行如下命令:

my_self@A:~$ ssh B "ssh C run_a_script_here"

如果我在 A、B、C 上正确设置了 ssh 密钥,并且不使用 SSH 密码,则此方法有效。但如果我以具有 SSH 密码的其他用户身份运行此命令,则会收到错误:

user_has_passphrase@A:~$ ssh B "ssh C run_a_script_here"
Pseudo-terminal will not be allocated because stdin is not a terminal.
user_has_passphrase@A: Permission denied (publickey).

我在 A 和 B 上为 user_has_passphrase 设置了钥匙串,我可以从 A 执行 ssh B,然后在 B 上执行 ssh C,没有任何问题。

我不确定是否使用密码,我什至可以执行链 ssh 或不执行。

任何想法?

谢谢,菲利普

答案1

如果您想使用检查(伪)终端的交互,例如sudo身份验证,或者在本例中,使用密码进行密钥身份验证,您可以使用开关-tssh根据手册,将:

强制伪终端分配。

如果需要,可以将其链接起来,例如

$ ssh -t B "ssh -t C run_a_script_here"

相关内容