目前 mac 上免輸入密登錄遠程服務器主要是2種方案
- 方案一: ssh-keygen 生成公私鑰,把公鑰拷貝到要登錄的服務器種,ssh 命令直接免密登錄
- 方案二: iTerm2 -> profile 自定義登錄腳本進行登錄
此文主要說明的是自定義腳本進行免密登錄
1.依賴條件
- brew
mac 下的包管理工具,安裝brew參考(源推薦使用清華): https://gitee.com/cunkai/HomebrewCN
- expect
expect是一個自動化交互套件,主要應用于執(zhí)行命令和程序時紧卒,系統(tǒng)以交互形式要求輸入指定字符串着茸,實現(xiàn)交互通信瑞驱。
# 安裝 expect
brew install expect
2. 自定義腳本
- 在/usr/local/bin 目錄下創(chuàng)建 login.sh 文件,內(nèi)容如下
#!/usr/bin/expect
set timeout 30
spawn ssh -p [lindex $argv 0] [lindex $argv 1]@[lindex $argv 2]
expect {
"*yes/no*?"
{send "yes\n";exp_continue}
"*assword:*"
{send "[lindex $argv 3]\n"}
}
interact
- 腳本授權,可執(zhí)行權限
sudo chmod +x login.sh
- 測試
login.sh 參數(shù)1 參數(shù)2 參數(shù)3 參數(shù)4
login.sh 端口 用戶名 ip地址或者域名 '密碼'
# 找臺遠程服務器測試下:
login.sh 22 root 110.110.110.110 '123456'
3.iTerm2 配置遠程服務器保存賬號密碼
mac 最好用的終端工具
- 打開 profile 編輯頁面,把登錄腳本拷貝到指定輸入框,如圖:
login.sh 22 root 110.110.110.110 '123456'
-
最后在 profile 中直接到打開測試即可,遠程連接成功了