expect脚本示例–ssh登录交互

expect脚本示例–ssh登录交互

expect一些基本的用法,写一个简短的交互式ssh登录脚本。

#!/usr/bin/expect -f

set host [lindex $argv 0]
set port [lindex $argv 1]
set pass "password"

set timeout 5

spawn ssh -p$port zw@$host

# 没有认证指纹,则同意连接。
# 已经认证了指纹,直接输入密码登录。
expect {
    "Are you sure you want to continue connecting (yes/no*" { send "yes\r" }
        "*password" { send "$pass\r" }
        eof {
                exit 1
        }
}

# 如果之前已经认证了指纹,这一步需要等待 timeout 秒后超时。
expect {
        "*password" { send "$pass\r" }
        eof {
                exit 1
        }
}

# 给出控制终端
interact
# 结束
expect eof

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注