我有一个奇怪的问题我试图SSH连接到脚本里面的远程设备,所以我可以发送命令给它,但奇怪的是它要求输入密码之前的SSH连接我甚至可以调用expect命令。我的片段是这样的:SSH连接在密码可以发送之前请求密码
#!/usr/bin/expect
set PASS="password"
echo {$PASS}
ssh [email protected] -p 4118 #Firewall Device IP
expect {
"Password: "
{send '$PASS\r'}
}
和输出我得到的是这样的:
password
Password:
我不知道为什么它表现这样。
编辑: 我申请通过@glenn杰克曼建议的修改,新的代码之中:
#!/usr/bin/expect
set PASS "peak1234"
puts "$PASS"
ssh [email protected] -p 4118 #Firewall Device IP
expect "Password :"
send "$PASS\r"
这些变化我得到的错误:
set: Variable name must begin with a letter.
学习一点tcl,否则它会太艰难,你会正确地工作。 – Jahid