本地连接远端的服务器,Iterm2 能够说是 MAC 上的一大利器了,配合脚本,能够一键直连服务器
最近因公司增强了服务器登陆验证,换了 JumpServer 服务器,还减少了二次认证,必须用 Google Authenticator 输出 6 位动静验证码,能力胜利登陆,这样的话每次都得关上手机,手动输出验证码比拟麻烦,所以,我这么懒的程序猿怎么会安分的一步步操作呢,来个脚本
开始之前,先查看你的电脑装没装 brew 和 expect,如果没有装置,先装完再进行后续步骤哈
装置 brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed
装置 expectbrew install expect
筹备工作就绪,咱们持续接下来的步骤
1、首先,给你的电脑装一个 oath-toolkitbrew install oath-toolkit
2、你还得获取到我下面截图的二维码上面的 Secret 前面的 key,用上面的命令验证一下你设置的对不对吧 oathtool --totp -b YOUR-PRIVATE-KEY
3、如果下面的都没有问题,间接来上脚本
#!/usr/bin/expect
set jumpusr user_name
set pwd password
set jumphost 172.16.XXX.XX
set host [lindex $argv 0]
catch {spawn ssh -p 22 $jumpusr@$jumphost}
expect "*password:*"
send "$pwd\r"
expect "*MFA*" {set code [exec sh -c {oathtool --totp -b YOUR-PRIVATE-KEY}]
send "$code\r"}
expect {
"*Opt>*" {send "[lindex /$argv 0]\r";exp_continue}
"*Host*" {send "1\r1\r"}
}
# 此处看运维给你的什么权限,间接进入 app 的话上面的能够删除
expect "*$*" {send "sudo su - app\r"}
interact