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

转载 2016年01月01日 16:31:56

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


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

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

1. 写一个expect脚本

  1. #!/usr/bin/expect  
  2.   
  3. set timeout 30  
  4. spawn ssh [lindex $argv 0]@[lindex $argv 1]  
  5. expect {  
  6.         "(yes/no)?"  
  7.         {send "yes\n";exp_continue}  
  8.         "password:"  
  9.         {send "[lindex $argv 2]\n"}  
  10. }  
  11. 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脚本的编写上,其他的照搬即可,那这里就直接把代码贴出来就行了

  1. #!/usr/bin/expect  
  2. # 参数1:远程host;参数2:远程password  
  3. if { $argc != 2 } {  
  4.     send_user "Usage: host password\n"  
  5.     exit  
  6. }  
  7.   
  8. set host [lindex $argv 0]  
  9. set pw [lindex $argv 1]  
  10.   
  11. set TERMSERV jumphost   # jumphost换成自己跳板机的host  
  12. set USER jumpuser   # jumpuser换成跳板机的user  
  13. set PASSWORD jumppasswd # jumppasswd换成跳板机的password  
  14. # 从文件中/tmp/passcode读取passcode  
  15. set fd [open /tmp/passcode r]  
  16. gets $fd pc  
  17. close $fd  
  18.   
  19. # 登录跳板机  
  20. catch {spawn ssh -l $USER $TERMSERV}  
  21. expect "*assword:*" { send "$PASSWORD\r" }  
  22. expect "*passcode:*" { send "$pc\r" }  
  23.   
  24. # 登录远程机器  
  25. expect "*$TERMSERV*" { send "ssh -l root1 $host\r" }  
  26. expect "*assword:*" { send "$pw\r" }  
  27. expect "*$host*" { send "cd /tmp\r"; interact }  

欢迎交流


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

以前用Windows开发的时候都用xShell,现在用mac的时候没有xShell,通常会用iTerm2代替自带的终端来使用,这样就有了一个问题,每次ssh登录服务器的时候都要手动复制账号密码很麻烦。...
  • Eden_M516
  • Eden_M516
  • 2017年06月26日 16:28
  • 1927

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

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

Mac下使用iTerm2让SSH记录远程服务器账号和密码

iTerm2和Macbook自带的Terminal差不多,但是功能更强大,强烈推荐使用。 下面说下,如何让iTerm2记住远程服务器SSH登录账号和密码。 第一步:打开Finder,在菜单...
  • shaobo8910
  • shaobo8910
  • 2017年07月20日 13:42
  • 3105

mac对itrem2进行远程ssh连接配置

windows里有个Xshell非常的方便好使,因为它能保存你所有的ssh登录帐号信息。MAC下并没有xshell,有些也提供这样的功能,但效果都不好。iterm2是很好的终端,但却不能很好的支持多p...
  • russ44
  • russ44
  • 2017年03月10日 11:06
  • 1088

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

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

Mac iterm远程ssh中文乱码

在Mac使用iTerm进行ssh连接centos机器,进行文件编辑,中文部分乱码 原因:本机终端的编码和远程机器上的basn端编码不一致 解决办法:修改远程主机的bash显示编码 编辑相关文件v...
  • wow4464
  • wow4464
  • 2017年07月21日 11:29
  • 481

【玩转Mac OS】02. Mac上设置iTerm2可以显示和输入中文

修改前iTerm2是无法显示中文的 当然也无法输入中文 iTerm2 -- Preferences -- Terminal -- Terminal Emulation -- Charact...
  • wirelessqa
  • wirelessqa
  • 2013年10月10日 18:48
  • 24066

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

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

item2自动连接远程服务器

1、安装Mac 下的 iterm2 官网下载安装地址: http://iterm2.com/2、安装 sshpass 下载地址:http://sourceforge.net/projects/ss...
  • seamon0627
  • seamon0627
  • 2016年06月23日 14:05
  • 619

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

iTerm2代替掉pem文件,一键登录跳板机
  • d007letian
  • d007letian
  • 2017年09月29日 15:35
  • 636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何在iterm2中设置自动远程登录(附跳板机攻略)
举报原因:
原因补充:

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