gpt4 book ai didi

linux - 如何使用 expect 脚本测试 SSH 连接

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:14:34 25 4
gpt4 key购买 nike

我有 Linux red-hat 机器 - 版本 5.X

我想创建 expect 脚本来验证 ssh 登录到远程机器是否成功

我的测试只是在远程登录时获取密码提示(我不想输入密码)

它喜欢测试ssh 连接

到目前为止我创建的是以下脚本

所以如果我收到密码提示,那么脚本需要返回 0

如果不是则脚本需要返回1

我的脚本的问题是 - 即使 ssh 登录失败脚本也返回 0(无密码提示)

 #!/usr/bin/expect


set LOGIN [lindex $argv 0]
set PASSWORD [lindex $argv 1]
set IP [lindex $argv 2]




set timeout 10
spawn ssh -o StrictHostKeyChecking=no $LOGIN@$IP
expect -re "(Password:|word:)"
exit 0
expect {
timeout {error "incorrect password"; exit 1}
eof
}

请指教如何更新我的脚本?

最佳答案

您必须将条件包含在一个 expect 中,

set timeout 10
spawn ssh -o StrictHostKeyChecking=no $LOGIN@$IP
expect {
timeout {puts "Timeout happened";exit 0}
eof {puts "EOF received"; exit 0}
-nocase "password:" {puts "SSH connection is alive for the host $IP"; exit 1}
}

看看 here这类似于您的问题。

关于linux - 如何使用 expect 脚本测试 SSH 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32198894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com