1

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

HOST=myhostname
USER=myuser

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

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

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

4

1 回答 1

0

使用期望

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

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

然后只需运行命令:

./mylogin.exp

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

于 2013-10-03T15:37:46.253 回答