登陸ssh服務器需要賬號與密碼,而往往我們需要頻繁的登陸與登出或者切換服務器,會很繁瑣。其實可以使用expect來實現簡易命令登陸ssh服務器,比如一個“go”~
一、安裝expect
#ubuntu
sudo apt-get install expect
#Mac
需要源碼編譯安裝tcl與expect,自行搜索
若不成功,先更新下源再安裝
sudo apt-get update
二、登陸腳本
#!/usr/bin/expect
# 設定超時時間爲3秒
set timeout 3
set USRNAME "你的賬戶名@ip地址"
set PASSWORD "你的密碼"
# fork 一個子進程執行 ssh 命令
spawn ssh -X "$USRNAME"
# 期待匹配到 'user_name@ip_string's password:'
expect "*password*"
# 向命令行輸入密碼並回車
send "$PASSWORD\n"
# send "sudo -s\r"
# 幫我切換到常用的工作目錄
# send "cd /data/logs\r"
# 允許用戶與命令行交互
interact
修改上面的
set USRNAME "你的賬戶名@ip地址"
set PASSWORD "你的密碼"
將此文本保存成一個sh文件,比如go.sh
三、修改.bashrc
#ubuntu
vim ~/.bashrc
#Mac
vim ~/.bash_profile
添加一行
alias go='/home/ubuntu/bash/go/go.sh'
這裏的go.sh爲剛纔保存腳本的存放路徑,之後
#ubuntu
source ~/.bashrc
#Mac
source ~/.bash_profile
即可在終端中使用“go”來實現登陸ssh服務器