为了保障网络和数据安全,越来越多公司使用堡垒机。iTerm作为一个好用的终端利器,要实现自动通过堡垒机登录服务器的方式有多种。下面我就来介绍一种通过expect脚本的方式完成配置。

第一步,进入/usr/local/bin目录,新建remote.exp文件,文件内容如下:

//remote.exp文件内容#!/usr/bin/expect
set jumpusr [lindex $argv 0]
set jumphost [lindex $argv 1]
set usr [lindex $argv 2]
set host [lindex $argv 3]catch {spawn ssh -l $jumpusr $jumphost}expect "*$jumphost*" { send "ssh -l $usr $host\r" }
expect "*$host*" { send "cd ~\r"; interact }

第二步,执行下面命令,修改文件属性为可执行

chmod 777 remote.exp 

第三步,在iTerm中测试刚才的程序。测试命令格式如下:

// user1为登录堡垒机的用户名
// host1为堡垒机IP地址
// user2为登录目标服务器的用户名
// host2为目标服务器的IP地址 remote.exp user1 host1 user2 host2

如:remote.exp xiaowang 123.4.56.78 hadoop 132.45.6.89
执行命令后,直接进入目标服务器。如果没有成功检查自己是否有堡垒机和目标服务器权限

第四步,配置iTerm
在iTerm中打开 Preferences -> Profiles -> General, 点击左侧底部“+”增加配置。

配置完成后,点击菜单栏的profiles,即可看到添加的快捷入口,点击入口即可快速登录相应的服务器。这种方法默认从new tab打开服务器。

也可点击快捷点“command+O”打开profiles窗口,选择入口和打开方式登录服务器。这种方法可选择从水平分割、垂直分割、新tab、新窗口方式打开。

后续,如需要增加新的堡垒机和服务器登录,只需在iTerm的profiles中增加新的配置即可。

注:文中显示的IP地址均为虚构地址,如有雷同请联系我修改。

remote.exp文件内容详解:

#!/usr/bin/expect
set jumpusr [lindex $argv 0]
set jumphost [lindex $argv 1]
set usr [lindex $argv 2]
set host [lindex $argv 3]catch {spawn ssh -l $jumpusr $jumphost}expect "*$jumphost*" { send "ssh -l $usr $host\r" }
expect "*$host*" { send "cd ~\r"; interact }

#!/usr/bin/expect, 指定用来执行该脚本的命令程序,这里的expect类似linux下的bash、windows下的cmd。注意:这行必须在第一行。

set jumpusr [lindex $argv 0], 获取执行脚本时传入的参数(参数保存在$argv中,从0号开始是参数),并将第0个参数保存到变量jumpusr中。

spawn ssh -l $jumpusr $jumphost, spawn是进入expect环境后才可以执行的expect内部命令,如果没有装expect或者直接在默认的SHELL下执行是找不到spawn命令的,所以不要用 “which spawn“之类的命令去找spawn命令。好比windows里的dir就是一个内部命令,这个命令由shell自带,你无法找到一个dir.com 或 dir.exe 的可执行文件。
spawn主要的功能是给ssh运行进程加个壳,用来传递交互指令。

expect "*$jumphost*" { send "ssh -l $usr $host\r" }, 这里的expect也是expect的一个内部命令,这个命令的意思是判断上次输出结果里是否包含$jumphost(堡垒机地址)的值的字符串,如果有,执行‘ssh -l $usr $hostr’

expect "*$host*" { send "cd ~\r"; interact }, 判断上次输出结果里是否包含$host(目标服务器地址)的值的字符串,如果有,进入服务器用户目录,并保持交互动作。

interact, 执行完成后保持交互状态,把控制权交给控制台,这个时候就可以手工操作了。如果没有这一句登录完成后会退出,而不是留在远程终端上。

expect命令参考链接:http://www.cnblogs.com/lixiga...

iTerm2配置自动通过堡垒机登录服务器相关推荐

  1. 使用Xshell通过堡垒机登录服务器

    1. 在Linux服务器上生成秘钥对 cd ssh-keygen -t rsa cd /root/.ssh sz id_rsa 2. 在堡垒机账户设置----秘钥管理----输入秘钥内容(cat id ...

  2. 服务器堡垒机登录方式

    :1,在Windows客户端登录,调出远程桌面连接窗口 2,各种不同的认证登录堡垒机账户密码方式: Windows系统堡垒机登录 验证: Linux系统堡垒机登录验证: 3,登录堡垒机成功页面!!!

  3. 堡垒机下服务器后传文件,通过堡垒机远程服务器

    通过堡垒机远程服务器 内容精选 换一换 云堡垒机配置了FTP/SFTP远程备份,报请检查服务器密码或网络连接情况错误,不能启动远程备份.选择备份具体某一天日志,提示备份正在执行,但远程服务器未接收到该 ...

  4. 更安全的堡垒机登录方法

    Hi,all 目前现状: 每个同事的私钥和公钥都保存在bastion服务器,bastion如果被攻破,bastion后端的服务器安全就荡然无存了.基于这种考虑,现在把公钥和私钥保存在自己的本地,bas ...

  5. java执行linux跳板机_跳板机登录服务器脚本及命令制作

    一.目的 从跳板机登录服务器是每次登录线上服务器都有的操作,如果每次都是手动ssh username@ip的形式就显得低效和繁琐,如果登录跳板机之后,自动执行一个命令,显示自己有登录权限的系统,选择系 ...

  6. 阿里信创云堡垒机连接服务器出现问题,查看是否配置信创云堡垒机出方向的安全组策略。。。

    今天有客户问我,堡垒机 连接服务器连接不上怎么办? 能怎么办?问我干啥?这个是我第一反应,客户认为我是搞安全的,比如安全组策略~这一听不就是和我专业对口嘛,,,,ennn,好吧,没办法,客户最大咯(其 ...

  7. 堡垒机是服务器吗?两者有区别吗?

    最近很多人在问,堡垒机是服务器吗?不是不是两者有什么区别吗?今天我们小编就给大家简单解释一下. 堡垒机是服务器吗?两者有什么区别? [回答]堡垒机不是服务器.堡垒机是一种安全审计系统,也就是连接各种服 ...

  8. 免密登录堡垒机和服务器

    免密登录堡垒机 安装oathtool和sshpass 这两个文件安装比较耗费时间! brew install oath-toolkit brew install https://raw.githubu ...

  9. 齐治堡垒机配置文件服务器,齐治堡垒机操作手册-20210703081118.docx-原创力文档

    Copyright ? 2009-2011 Copyright ? 2009-2011 齐治科技Page PAGE # 齐治堡垒机操作手册 中国旅游集团 信息共享中心 2020年2月 版本 TOC \ ...

最新文章

  1. MySQL Date,DateTime和Timestamp类型
  2. 解决vs2015使用fopen、fprintf等函数报错的问题
  3. WordPress网站的问题
  4. c++基础学习(08)--(继承、重载、多态、虚函数)
  5. iOS设置拍照retake和use按钮为中文简体
  6. DNN: ModuleSettings Vs TabModuleSettings
  7. 安装deepin后会删除win10吗_不管是先装Win10还是先装Deepin,启动问题轻松搞定
  8. JAVA Metrics 度量工具使用介绍
  9. Ubuntu 16.04中zabbix4.2设置中文显示
  10. Arrays.copyOf
  11. cad转shp 奥维_CAD转化为Shp
  12. PaddleHub创意项目 | 将霉霉P到埃菲尔铁塔前
  13. 破解无线路由 backtrack BT5 Linux R3 安装 SpoonWep2.deb
  14. python中的headers是什么意思_Python设置Headers
  15. Akka学习笔记:Actors介绍
  16. 关于n维和n-1维欧式空间的理解(转)
  17. linux绘制进程树,Linux基础命令---显示树形进程pstree
  18. Lazada代入驻靠谱?Lazada代入驻多少钱?
  19. linux中出现不在 sudoers 文件中。此事将被报告的解决方法
  20. Windows 版本的 B站 开源了?

热门文章

  1. Swift团队把Swift之父气跑了,网友:Python之父的仁慈独裁者模式才是王道
  2. 澎思科技马原:AI为基,IoT为翼,加速人工智能普惠丨MEET2021
  3. 新iPhone全面5G!4种杯型,最便宜只要5500,均内置中国北斗
  4. 报名 | 四场直播讲透AI芯片的应用与挑战、剖析技术难点,芯片的所有知识点都在这了...
  5. 为了孩子上名校,他们发论文给子女署名,Nature发文报道韩国学术不当行为
  6. 中国第一家交货的自动驾驶独角兽:完全自主泊车,千元级硬件成本
  7. 各类操作系统的TTL字段值
  8. Android-Lifecycle超能解析-生命周期的那些事儿
  9. Nginx主配置文件nginx.conf详细说明
  10. 【Thread】简单说说java.lang.Thread.State