如果需要遠端管理幾個ssh伺服器,輸入不輸入密碼都無所謂,甚至都能背下來密碼。當你要管理的ssh 多達幾十個時,就不想輸入密碼啦。這裡只是記錄本人的使用習慣,不一定是最佳解決方案。
這類的軟體有很多,我使過很多款,下面兩款值得推薦。
不足之處:
因為個人比較喜歡iterm中的一些特性,所以更傾向於使用iterm來ssh。一開始我就是直接敲命令輸入密碼的,後來發現使用金鑰免密碼登入非常方便,就基本都使用金鑰這種方式連線ssh 了。
使用方法:
《mac使用ssh連線遠端伺服器免密碼登入》
此教程也適應與linux,幾乎一樣的。
大部分伺服器都可以使用金鑰免密碼登入,我在工作中遇到過一種通過堡壘機連線ssh的方式,並不支援金鑰登入。
有些有堡壘機的伺服器,無法上傳金鑰,怎麼實現免密登入呢?
expect就是用來做互動用的,基本任何互動登入的場合都能使用,但是需要安裝expect包。
做如下操作,
建立乙個指令碼
vim autossh.sh
增加如下內容:
#!/usr/bin/expect
# 解決vim行錯亂
trap
winch
# 設定超時時間為30s
settimeout 30
# spawn是 expect語句,執行命令前要加spawn
# 執行ssh ip或者網域名稱位址 準備連線伺服器
spawn ssh sshserver
# 互動獲取返回了password:關鍵字
expect
"password:"
# 傳送mima 到控制台,注意\r不是密碼的一部分
send "mima\r"
# 執行完留在遠端控制台,不加這句執行完後返回本地控制台
interact
增加執行許可權
chmod +x autossh.sh
執行指令碼:
./autossh.sh
expect跟bash類似,所以首先要有#!/usr/bin/expect
,執行指令碼時要使用expect file
不能是sh file
了。
mac下預設是:#!/usr/bin/expect
,linux下可能是#!/bin/expect
主要看你的安裝位置了。可以使用which expect
查詢一下。
這樣就可以不輸入密碼直接登入了。
如果覺得每次執行這個指令碼麻煩,就加個好記的別名,放到環境變數裡就行了。
vim ~/.zshrc
加入下面一行
alias sa=
'/users/username/.ssh/a.sh'
使環境變數立即生效。
source ~/.zshrc
這樣就可以使用sa
這個簡單命令來免密碼登入你的ssh遠端伺服器了。 ssh 免密碼登入
ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh keygen t rs...
ssh 免密碼登入
ssh 免密碼登入 ssh 無密碼登入要使用公鑰與私鑰。linux下可以用用ssh keygen生成公鑰 私鑰對,下面我以centos為例。有機器a 192.168.1.155 b 192.168.1.181 現想a通過ssh免密碼登入到b。1.在a機下生成公鑰 私鑰對。chenlb a ssh k...
ssh免密碼登入
實現原理 主機a 產生公鑰和金鑰,將主機a的公鑰傳送到主機b 主機b 接收主機a傳送的公鑰 主機a ssh請求登入到主機b 主機b 傳送給主機a一串字元 主機a 收到主機b傳送的字元,使用金鑰進行加密,並傳送回到主機b 主機b 接收到主機a使用金鑰加密後的字元,使用主機a的公鑰執行一定演算法進行對比...