4

我的期望代码是这样做的:它通过 ssh 连接到另一台机器,发送密码,然后返回该机器的主机名。我在下面给出了我的代码示例
#!/usr/bin/expect -f
set ipaddr [lrange $argv 0 0]
set password [lrange $argv 1 1]
set timeout -1
spawn ssh root@$ipaddr hostname
match_max 100000
expect "*assword:*"
send -- "$password\r"
expect eof

此代码多次完美运行,但间歇性地,我收到以下错误
send: spawn id exp4 not open
while execution
"send -- "$password\r" “

为什么会这样?

4

1 回答 1

1

想通了为什么。我已经生成了 ssh 密钥并将其复制到目标机器上。所以没有“密码:”提示。因此,在发送完成之前,ssh 连接已经关闭。

我从目标机器上删除了 ssh 密钥并再次运行脚本并没有发现任何问题

于 2009-09-09T08:15:53.707 回答