mac下通过Linux expect命令实现iterm2一键免密登录跳板机和内网

一、实现免密登录跳板机
二、新建一个文件
# cd /Users/macbook/.ssh/
# touch login2inner
# vim login2inner
三、编写文件内容(trap一定要加上,expect会导致窗口缩放,vim错乱问题
#!/usr/bin/expect
#trap sigwinch spawned
#捕获窗口大小改变的信号
trap {
    set rows [stty rows]
    set cols [stty columns]
    stty rows $rows columns $cols < $spawn_out(slave,name)
} WINCH 

set HOST [lindex $argv 0]    //内网服务器ip

set TERMSERVIP 125.125.20.20 //跳板机服务器ip
set TERMSERVUSER www         //跳板机用户名
set TERMSERVPWD 123456       //跳板机密码
set UATUSER www              //内网用户名
set UATPWD 123456            //内网密码

# 登录跳板机
spawn ssh -l $TERMSERVUSER $TERMSERVIP
expect {
    "yes/no" {send "yes\r";exp_continue;}
    "*password:*" { send "$TERMSERVPWD\r" }
}
# 登录内网
expect "*$TERMSERVUSER@*" {send "ssh $UATUSER@$HOST\r"}
expect {
    "yes/no" {send "yes\r";exp_continue;}
    "*password:*" { send "$UATPWD\r" }
}
interact
四、给文件可执行权限
# chmod +x login2inner
四、配置 profile
1. 打开iterm2,command+,进入设置,点击Profiles即可。或者command+o打开profiles(再者菜单Profiles->Open Profiles),点击右下角的Edit Profiles ,配置profile,如下图:
2. Login shell 那里就是填  脚本名字(绝对路径) + 内网服务器ip
/Users/macbook/.ssh/login2inner 172.1.1.10
 3. 打开iterm2,command+o打开profiles菜单,点击自己配置的profile name。

您可以选择一种方式赞助本站

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: