如何在iterm2中设置自动远程登录(附跳板机攻略)

原创 2014年01月04日 13:36:53

最近在mac中折腾ssh自动登录的问题,不自动登录每次输入命令太痛苦了,采取的方案是expect脚本的方式,其实选择这种方案而不是在远程服务器上保存key的方式主要是因为公司限制了在跳板机上保存私有数据的权限,如果想了解如何不输入密码登录远程机器的原理,请看这篇博客


当然,OS X上的终端可以使用iterm2,这样配置后便利性不比$99的secureCRT差        

首先介绍下不通过跳板机进行登录的方式,准备:

1. 写一个expect脚本

#!/usr/bin/expect

set timeout 30
spawn ssh [lindex $argv 0]@[lindex $argv 1]
expect {
        "(yes/no)?"
        {send "yes\n";exp_continue}
        "password:"
        {send "[lindex $argv 2]\n"}
}
interact
该脚本比较简单,需要三个参数,第一个参数是远程用户名,第二个参数是远程地址,第三个参数是密码

2. 将expect脚本copy到$PATH下(例如/usr/local/bin)

3. 在iterm2中设置登录命令为1中的脚本,用command+o的方式呼出profiles,点击Edit Profiles


上面是已配置的远程登录机列表,双击可以自动登录


如上图配好后,即可自动登录


下面再说下有跳板机的情况

俺公司的跳板机策略如下,不同公司的环境不一样,也许某些同学可以进行参考

1.跳板机上不能存放任何文件,/tmp下可以方临时文件,每天会定时清掉

2.copy文件方向只能是local->跳板机->remote的方向,即local可以push/pull跳板机上的文件,跳板机可以push/pull远程上的文件

3.向跳板机登录前需要通过邮件/短信的方式获取passcode,这是除密码之外的额外的验证方式

其实跳板机的自动远程登录与非跳板机的差异在expect脚本的编写上,其他的照搬即可,那这里就直接把代码贴出来就行了

#!/usr/bin/expect


# 参数1:远程host;参数2:远程password  
if { $argc != 2 } {
    send_user "Usage: host password\n"
    exit
}

set host [lindex $argv 0]
set pw [lindex $argv 1]

set TERMSERV yourjumpserver # 跳板机服务器
set USER jumpserveruser # 用户名
set PASSWORD jumperserverpasswd # 跳板机密码


set fd [open /place/to/passcode r] # 本地存放passcode的地方
gets $fd pc
close $fd


# Start the session
catch {spawn ssh -l $USER $TERMSERV} # 登录跳板机

# Login
expect "*assword:*" { send "$PASSWORD\r" }
expect "*passcode:*" { send "$pc\r" } 


#通过跳板机登录线上机器
expect "*hostname*" { send "ssh -l $USER $host\r" } # hostname为你跳板机的名字
expect {
    "(yes/no)?"
    {send "yes\n";exp_continue}
    "*assword:*"
    {send "$pw\n"}
}
expect "*$host*" { send "cd ~\r"; interact }

欢迎交流

使用iTerm2快捷连接SSH

大家都知道使用iTerm2连接shh 使用命令 ssh -p22 root@129.10.10.1,然后输入密码即可。 但是每次都输入还是比较麻烦的。iTerm2为我们提供了快捷的方式。三步即可完成...
  • fangxiaoji
  • fangxiaoji
  • 2016年02月21日 23:27
  • 14484

Mac Item2 SSH免密登录Linux 服务器的两种方式

mac ssh登录linux服务器 的两种方式: 一、 使用item2的profiles 和expect脚本 配置步骤: 1. 写一个expect脚本#!/usr/bin/expect set...
  • jobschen
  • jobschen
  • 2016年10月15日 16:50
  • 10219

iTerm2 终端工具记住SSH密码

macOS 中 iTerm2 终端工具记住密码 iTerm2 是 macOS 平台优化秀的终端工具,具有以下特点: 选中即复制全文查找 command + f窗口垂直(co...
  • wandershi
  • wandershi
  • 2017年07月13日 17:50
  • 1058

详述 iTerm2 配色及免密登录 SSH 的方法

博主说:iTerm2 是一个 Mac 版的类似于 Xshell 的终端工具,虽然很多同学说其功能并没有 Xshell 那么强大,但它仍然能够满足我们的大部分需求了。在此文中,我们将详细介绍 iTerm...
  • qq_35246620
  • qq_35246620
  • 2017年11月08日 20:07
  • 2855

iTerm2使用pem文件免密登录跳板机

iTerm2代替掉pem文件,一键登录跳板机
  • d007letian
  • d007letian
  • 2017年09月29日 15:35
  • 636

iterm2连接远程服务器,如何在iterm2中设置自动远程登录(附跳板机攻略)

最近在mac中折腾ssh自动登录的问题,不自动登录每次输入命令太痛苦了,采取的方案是expect脚本的方式,其实选择这种方案而不是在远程服务器上保存key的方式主要是因为公司限制了在跳板机上保存私有数...
  • zmzwll1314
  • zmzwll1314
  • 2016年07月31日 14:58
  • 6087

Mac上如何通过跳板机向服务器上上传大文件

Mac上如何通过跳板机向服务器上上传大文件最近的工作中,要在服务器上,做大量数据的运算。因此有了通过跳板机向服务器上传输大文件(几十G)的需求。由于需要通过跳板机,因此,scp的方法在此不适用了,需要...
  • searobbers_duck
  • searobbers_duck
  • 2017年04月25日 17:06
  • 1702

mac下超好用的终端--iterm2用法与技巧

如上图,让 iTerm2 随叫随到而且不占用 Dock 上宝贵的空间,想知道这是如何做到的呢,看下面一步步的讲解吧〜 Step1 - 设置窗口 定位到 [Preferences - P...
  • rocLv
  • rocLv
  • 2014年05月05日 20:09
  • 42332

如何在iterm2中设置自动远程登录(附跳板机攻略)

最近在mac中折腾ssh自动登录的问题,不自动登录每次输入命令太痛苦了,采取的方案是expect脚本的方式,其实选择这种方案而不是在远程服务器上保存key的方式主要是因为公司限制了在跳板机上保存私有数...
  • langsim
  • langsim
  • 2016年01月01日 16:31
  • 4281

Mac下使用iTerm2自动ssh登录服务器

以前用Windows开发的时候都用xShell,现在用mac的时候没有xShell,通常会用iTerm2代替自带的终端来使用,这样就有了一个问题,每次ssh登录服务器的时候都要手动复制账号密码很麻烦。...
  • Eden_M516
  • Eden_M516
  • 2017年06月26日 16:28
  • 1927
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在iterm2中设置自动远程登录(附跳板机攻略)
举报原因:
原因补充:

(最多只允许输入30个字)