本地連接遠端的服務器,Iterm2 可以説是MAC 上的一大利器了,配合腳本,可以一鍵直連服務器
最近因公司加強了服務器登陸驗證,換了JumpServer 服務器,還增加了二次認證,必須用Google Authenticator輸入6位動態驗證碼,才能成功登陸,這樣的話每次都得打開手機,手動輸入驗證碼比較麻煩,所以,我這麼懶的程序猿怎麼會安分的一步步操作呢,來個腳本
開始之前,先檢查你的電腦裝沒裝brew 和 expect,如果沒有安裝,先裝完再進行後續步驟哈
安裝brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" speed
安裝expect
brew install expect
準備工作就緒,我們繼續接下來的步驟
1、首先,給你的電腦裝一個 oath-toolkit
brew 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