我希望能够接受一些命令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";
答案 0 :(得分: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"
但是,除非您有特定的理由这样做,否则using ssh keys是首选方法。
答案 1 :(得分:-1)
您可以将密码保存为变量,如下所示:
wget -O tmp
http://host/password.txt
密码= $(cat tmp);
但你不能在ssh密码上使用它,因为ssh密码被终端输入作为交互式动作读取。