ssh公鑰金鑰無密碼登陸

2021-07-30 17:17:26 字數 1987 閱讀 6168

ssh提供兩種級別的安全驗證。

第一種級別(基於密碼的安全驗證),知道帳號和密碼,就可以登入到遠端主機,並且所有傳輸的資料都會被加密。但是,可能會有別的伺服器在冒充真正的伺服器,無法避免被「中間人」攻擊。

第二種級別(基於金鑰的安全驗證),需要依靠金鑰,也就是你必須為自己建立一對金鑰,並把公有金鑰放在需要訪問的伺服器上。客戶端軟體會向伺服器發出請求,請求用你的金鑰進行安全驗證。伺服器收到請求之後,先在你在該伺服器的使用者根目錄下尋找你的公有金鑰,然後把它和你傳送過來的公有金鑰進行比較。如果兩個金鑰一致,伺服器就用公有金鑰加密「質詢」(challenge)並把它傳送給客戶端軟體。從而避免被「中間人」攻擊。

基礎環境:

機器a:192.168.1.107

機器b:192.168.1.108

ssh埠:32323

a機器使用者:daiyu

b機器使用者:daiyu

目標:

從a機器使用公鑰金鑰方式登陸b機器

(1)在a機器建立公鑰金鑰對,留意金鑰對的存放路徑

(2) 在b機器被登陸使用者根目錄下建立目錄.ssh,並設定正確的許可權

mkdir -p ~/.ssh

chmod 700 ~/.ssh

(3)將a機器的公鑰拷貝至b機器被登陸使用者的.ssh目錄中

scp -p32323 ~/.ssh/id_rsa.pub [email protected]:~/.ssh/

(4)調整b機器中的公鑰,並設定正確的許可權

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

chmod 600 ~/.ssh/authorized_keys

rm ~/.ssh/id_rsa.pub

ls -l ~/.ssh/

(5)修改a機器的ssh配置

sudo vim /etc/ssh/sshd_config

permitrootlogin no

rsaauthentication yes

pubkeyauthentication yes

(6)重啟a機器的ssh服務sudo service sshd restart(7)測試從a機器登陸b機器ssh -p32323 192.168.1.108

[daiyu@localhost ~]$ ssh -p32323 192.168.1.108

last login: mon apr 17 11:46:01 2017 from 192.168.1.107

[daiyu@localhost ~]$

注:如果b機器的.ssh目錄和公鑰的許可權設定不正確,會輸出日誌"bad ownership or modes for directory…"

原文出自:

end;

SSH 公鑰免密碼登陸

ssh 金鑰對總是成雙出現的,一把公鑰,一把私鑰。公鑰可以自由的放在您所需要連線的 ssh 伺服器上,而私鑰必須穩妥的保管好。所謂 公鑰登入 原理很簡單,就是使用者將自己的公鑰儲存在遠端主機上。登入的時候,遠端主機會向使用者傳送一段隨機字串,使用者用自己的私鑰加密後,再發回來。遠端主機用事先儲存的公...

ssh 連線 通過公鑰體制,無密碼登陸

每個使用者 目錄下有.ssh 目錄 沒有的話可以自己建,通過公鑰體制可以做到很多個使用者可以登陸linux 系統上的同乙個使用者,而他們都不知道出這個使用者的密碼,並且互相不知道各自的私鑰,他們持有不同的私鑰,而其各自相對應的公鑰都是這個使用者可以信任的 假設 我的系統上有乙個使用者名為git 另外...

ssh無密碼登陸

1.使用root登陸 修改 etc ssh sshd config檔案 客戶端服務端都需要改 將 authorizedkeysfile ssh authorized keys 前面的 去掉 如果需要root也能無密碼登陸,把 permitrootlogin yes 前面的 去掉 執行下面的命令重啟s...