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

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

内容简介:一般情况下,公司所有的服务器都在内网,公网访问、管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址通常情况下,我们都是通过两次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 登录跳板机后登录指定服务器


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

查看所有标签

猜你喜欢:

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

Docker——容器与容器云(第2版)

Docker——容器与容器云(第2版)

浙江大学SEL实验室 / 人民邮电出版社 / 2016-10 / 89.00元

本书根据Docker 1.10版和Kubernetes 1.2版对第1版进行了全面更新,从实践者的角度出发,以Docker和Kubernetes为重点,沿着“基本用法介绍”到“核心原理解读”到“高级实践技巧”的思路,一本书讲透当前主流的容器和容器云技术,有助于读者在实际场景中利用Docker容器和容器云解决问题并启发新的思考。全书包括两部分,第一部分深入解读Docker容器技术,包括Docker架......一起来看看 《Docker——容器与容器云(第2版)》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

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

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具