我的期望代码执行此操作:它执行ssh连接到另一台计算机,发送密码然后返回该计算机的主机名。我在下面给出了我的代码示例
#!/ usr / bin / expect -f
设置ipaddr [lrange $ argv 0 0]
设置密码[lrange $ argv 1 1]
设置超时-1
spawn ssh root @ $ ipaddr hostname
match_max 100000
期待“* assword:*”
发送 - “$ password \ r”
期待eof
这段代码运行很多次,但间歇性地,我得到以下错误
发送:spawn id exp4未打开
执行时
“发送 - ”$ password \ r“”
为什么会这样?
答案 0 :(得分:0)
弄清楚原因。 我生成了ssh密钥并将其复制到目标计算机上。所以没有“密码:”提示。因此,在发送完成之前,ssh连接已经关闭。
我从目标计算机上删除了ssh密钥,然后再次运行脚本并发现没有问题