使用SSH在另一台unix机器上执行shell脚本

时间:2013-10-03 14:43:35

标签: bash unix ssh

我正在尝试使用以下命令从我的unix框执行另一台unix机器中的脚本:

HOST=myhostname
USER=myuser

ssh -o StrictHostKeyChecking=no -l $USER $HOST "/tmp/myscript.sh"

但是命令提示我输入密码,但是我不希望命令提示输入密码,而不是我要将密码作为我的命令的参数传递。但我无法找到将密码作为参数传递给SSH命令的选项。

请帮我介绍如何发送密码作为命令的一部分,而不是提示它的命令。我正在使用BASH shell脚本。

1 个答案:

答案 0 :(得分:0)

使用EXPECT

将其保存为mylogin.exp(或您喜欢的其他名称),并更改名称和密码:

#!/usr/bin/expect -f
spawn ssh myname@some_server.com
expect {
   password:   {send "mypassword\n"}
}
interact

然后运行命令:

./mylogin.exp

这只会让你登录。如果你想改为运行一个命令,你可以把它放在ssh命令的末尾。