不确定最好标题这个问题......我在服务器A上有一个bash脚本。
工作Ubuntu桌面:
ssh -l USER host
*password*
coolscript var1 var2 var3
服务器A(coolscript):
command1 $1
command2 $2
现在,我需要在服务器b上触发coolscript2
并传递第三个参数。
run_remote_command_on_server_b coolscript2 $3
服务器B(coolscript2)
command3 $3
然而,我需要这样做,而无需为第二台服务器输入用户/通行证。
答案 0 :(得分:2)
如果我正确理解您的问题,您需要设置SSH密钥。
Arch Linux Wiki使用SSH密钥有great article。 您还可以阅读shorter HOWTO here。
基本上,当您通过SSH从主机A登录到主机B时,您可以通过生成私钥 - 公钥对来省略密码身份验证。私钥存储在主机A上,而公钥存储在主机B上。
请注意,有一个选项可以使用密码来保护SSH私钥 - 在您的情况下,您不会这样做。
所以,只需在桌面上生成密钥:
$ ssh-keygen
然后将它们复制到服务器A和服务器B:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub HOST_A
$ ssh-copy-id -i ~/.ssh/id_rsa.pub HOST_B