iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器

栏目: 服务器 · 发布时间: 5年前

内容简介:一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址通常情况下,我们都是通过两次ssh,第一次本地机器登录跳板机,第二次在跳板机登录指定机器,需要输入两次密码,容易输错后端码农每天要无数次登录各种机器,如果能通过工具自动化,每次能省半分钟,并且心情会愉悦很多,下面来进行实战

痛点

一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址

通常情况下,我们都是通过两次ssh,第一次本地机器登录跳板机,第二次在跳板机登录指定机器,需要输入两次密码,容易输错

后端 码农 每天要无数次登录各种机器,如果能通过 工具 自动化,每次能省半分钟,并且心情会愉悦很多,下面来进行实战

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
# 执行完成后保持交互状态,把控制权交给控制台
  • 将脚本保存成一个文件,例如 server.exp
  • 可执行权限,chmod +x server.exp

配置 iTerm2

Profiles -> Open Profiles -> Edit Profiles

iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器

iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器

send text at start: [expect脚本路径] [参数0] [参数1] ... 
以空格分割

大功告成

到此为止,已完成所有准备工作,此时再进入指定机器,只需要三步

  1. 打开 iTerm2
  2. 快捷键 Command+o 打开 Profiles 面板
  3. 选中某个 profile 单击,就直接进入目标机器了,开始挥洒方遒吧!

温馨提示

  • 之所以在expect 脚本中设置了一个参数,是为了复用,要进入别的机器,复用同一个 .exp脚本,添加一个新的 profile 即可
  • exp 脚本可以多个参数,达到更多场景下复用,具体又童鞋自己考量
  • 也可以把 exp脚本 当做 sh脚本 一样执行,比如 ./test-server.exp in-test-server-goapi-1 ,这样可以不必要配置 profile

GitHub

本文为原创文章,转载注明出处,欢迎扫码关注公众号 楼兰 或者网站 https://lovecoding.club ,第一时间看后续精彩文章,觉得好的话,顺手分享到朋友圈吧,感谢支持。

iTerm2结合 expect 脚本实现 ssh 登录跳板机后登录指定服务器


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Web 2.0 Architectures

Web 2.0 Architectures

Duane Nickull、Dion Hinchcliffe、James Governor / O'Reilly / 2009 / USD 34.99

The "Web 2.0" phenomena has become more pervasive than ever before. It is impacting the very fabric of our society and presents opportunities for those with knowledge. The individuals who understand t......一起来看看 《Web 2.0 Architectures》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试