简介
用的MacBook,因为公司运维太菜,连个JumpServer都没有,每次都要用SSH命令来连接服务器,可是这么多IP谁记得住。于是发现可以用过Iterm2的功能来实现类似JumpServer的功能。
设置完成后效果如下:【Command+O】调出服务列表。
设置步骤
- 打开Preferences「Command+,」
- 新增一个Tag,设置Name,Command,脚本地址
- 编写脚本:脚本一:登录到服务器:
#!/usr/bin/expect -d
set host [IP]
set user [userName]
set password [password]
spawn ssh $user@$host
expect "*password:*"
send "$password\r"
interact
- 编写脚本:脚本二:多层跳转,从外网到内网:
#!/usr/bin/expect
# 跳板机
set TERMSERV [IP]
set USER [userName]
set PASSWORD [password]
# 内网
set UATSERV [IP]
set UATUN [userName]
set UATPWD [password]
# 登录跳板机
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 $UATUN@$UATSERV\r"}
expect {
"yes/no" {send "yes\r";exp_continue;}
"*password:*" { send "$UATPWD\r" }
}
interact
# 执行完成后保持交互状态,把控制权交给控制台
总结
核心是ssh 脚本的编写,虽然配置略显繁琐,但好在这种配置很少变更,文件也易于维护,而且最重要的是,相较于royal tsx之类的工具,这是免费的。