一行命令登陸服務器

相信程序員們都避免不了經過堡壘機登陸服務器來查看問題,如何快速登陸服務器而不用繁瑣地輸入密碼等等步驟呢?下面的shell腳本幫你完成。
auto-login.sh程序員

#!/usr/bin/expect -f

#定義堡壘機帳號/密碼/IP

set user ***
set passwd ***
set bastion_host ***

if { $argc == 1 } {
    #將第一個參數賦值給dest_host
 set dest_host [lindex $argv 0]
 #qa
 if { $dest_host == "qa" } {
  set dest_host qa-web-v01
 }
 #preview
 if { $dest_host == "pre" } {
  set dest_host sys-pre-v01
 }
}

#執行ssh操做,登錄到堡壘機
spawn ssh $user@$bastion_host
#檢測命令行的返回信息,匹配password關鍵字
expect "*password:"
#自動輸入密碼 回車
send "$passwd\n"
#沒有參數直接返回終端
if { $argc == 0 } {
 interact
 exit 1
}
#監測命令行的返回信息,匹配下面關鍵字
expect "Opt or Host>:"
#發送登陸的機器
send "$dest_host\n"
#自動交互
interact

而後就是將這個腳本執行放到.bashrc文件或是your_custom.zsh(mac os)文件中別名就ok啦web

alias autologin='/usr/local/sbin/auto-login.sh'

接下來就能夠:shell

$ autologin qa //直接到qa機器
$ autologin pre //直接到preview機器
$ autologin {machineName} //直接到指定機器
$ autologin //跳到堡壘機歡迎界面 能夠查看須要的機器名稱
相關文章
相關標籤/搜索