1. 程式人生 > >SSH連線失敗,報錯Host key verification failed——原理和解決方法

SSH連線失敗,報錯Host key verification failed——原理和解決方法

##原因,當時用ssh命令遠端連線sshd服務的時候。連線過程是需要認證的,以保證連線的安全和資料傳輸的加密。

客戶端ssh連線服務端sshd時,服務端根據自己的私鑰生成公鑰 (身份驗證使用公鑰加密演算法實現——公鑰加密私鑰解密),並傳送給客戶端ssh。

客戶端ssh命令接收服務端的公鑰,(第一次連線時,連線發起人需進行確認,你是否信任這臺主機。如果信任則可以連線並將此公鑰儲存在/root/.ssh/known_hosts檔案中,不信任則拒絕連線)。如果連線一旦建立,表示你認同你連線的這臺主機,客戶端ssh命令會隨機生成一個對稱祕鑰(這個祕鑰會使用服務端的公鑰加密並將這個對稱祕鑰傳送到服務端),之後客戶端和服務端就可以用這個對稱祕鑰進行資料加密傳送。

因此如果遠端主機發過來的公鑰與當前/root/.ssh/known_hosts
檔案中儲存的記錄不一致,則認為遠端主機有問題,並拒絕連線。“Host key verification failed”。