您现在的位置是:网站首页>技术文章技术文章

Mac iTerm2使用 expect 脚本实现 ssh 登录跳板机后登录指定服务器

魏怀静03-12 21:57:01技术文章583人已围观

简介expect 脚本#!/usr/bin/expect set host [lindex $argv 0] # 设置一个变量,传入的参数,0 表示第一个参数,同时也为了复用,毕竟不只是管理一台服务器 set TERMSERV 跳板机IP set USER 跳板机用户名 set PASSWORD 跳板机密码 set UATUN&nb

expect 脚本

#!/usr/bin/expect
set host [lindex $argv 0]

# 设置一个变量,传入的参数,0 表示第一个参数,同时也为了复用,毕竟不只是管理一台服务器

set TERMSERV 跳板机IP
set USER 跳板机用户名
set PASSWORD 跳板机密码
set UATUN 内网服务器用户名
set UATPWD 内网服务器密码

# 登录跳板机
spawn ssh -l $USER $TERMSERV

# expect是expect环境的一个内部命令,判断上一个指令输入之后的得到输出结果是否包含""双引号里的字符串,比如后面的"*password:*",表示上一个输出结果包含password:*通配符表示前后可以是任意字符

#类似于编程中的 switch语句,exp_continue相当于 continue
expect {
        "yes/no" {send "yes\r";exp_continue;}
         "*password:*" { send "$PASSWORD\r" }
        }
# 登录内网
expect "*$USER@*" {send "ssh -l $UATUN $host\r"}
expect {
        "yes/no" {send "yes\r";exp_continue;}
        "*password:*" { send "$UATPWD\r" }
        }
interact
# 执行完成后保持交互状态,把控制权交给控制台
  • 将脚本保存成一个文件,例如 shell.exp

  • 可执行权限,chmod +x shell.exp

配置 iTerm2

send text at start: /Users/zuo/ssh/shell.exp [内网IP]


站点信息

  • 建站时间:2018-09-18
  • 网站程序:Laravel
  • 主题模板:《今夕何夕》
  • 文章统计:88条
  • 统计数据
  • 微信公众号:扫描二维码,关注我们