ssh免密碼登入3種解決方法

2021-10-22 19:26:37 字數 1743 閱讀 5743

如果需要遠端管理幾個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的公鑰執行一定演算法進行對比...