1

我希望能够接受一些命令wget http://host/password.txt并将其读入期望的变量中,以便我可以在 SSH 脚本中使用它。

这是它应该做什么的一些不正确的代码:

set password "wget -O tmp http://host/password.txt && cat tmp";
spawn ssh 111.222.333.444;
send "$password\r";
4

2 回答 2

1

这是一个如何在 bash 中使用 expect 的示例:

wget -O tmp http://host/password.txt
password=$(<tmp)
login="root"
IP="localhost:8000"

expect_sh=$(expect -c "
spawn ssh $login@$IP
expect \"password:\"
send \"$password\r\"
expect \"#\"
send \"cd /var\r\"
")

echo "$expect_sh"

但是,除非您有特定的理由这样做,否则使用 ssh 密钥是首选方法。

于 2012-11-23T23:08:39.340 回答
-1

您可以像这样将密码保存到变量中:

wget -O tmphttp://host/password.txt
密码=$(cat tmp);

但是您不能在 ssh password 上使用它,因为 ssh 密码是由终端输入作为交互操作读取的。

于 2012-11-23T23:06:07.337 回答