ssh服務器公鑰記錄文件(轉)


當你登入遠程服務器時,本機會主動的用接收到的服務器的 public key 去比對 ~/.ssh/known_hosts 有無相關的公鑰, 然后進行底下的動作:

  • 若接收的公鑰尚未記錄,則詢問用戶是否記錄。若要記錄 (范例中回答 yes 的那個步驟) 則寫入 ~/.ssh/known_hosts 且繼續登入的后續工作;若不記錄 (回答 no) 則不寫入該檔案,並且離開登入工作;

  • 若接收到的公鑰已有記錄,則比對記錄是否相同,若相同則繼續登入動作;若不相同,則出現警告信息, 且離開登入的動作。這是客戶端的自我保護功能,避免你的服務器是被別人偽裝的。

雖然說服務器的 ssh 通常可能會改變,問題是,如果是測試用的主機,因此常常在重新安裝,那么服務器的公鑰肯定經常不同, 果真如此的話,你就無法繼續登入了!

那怎辦?讓我們來模擬一下這個行為吧!讓你比較有印象啦!

例題:

仿真伺服器重新安裝后,假設服務器使用相同的 IP ,造成相同 IP 的服務器公鑰不同,產生的問題與解決之道為何?

答:

利用前一小節講過的方式,刪除原有的系統公鑰,重新啟動 ssh 讓你的公鑰更新:
rm  /etc/ssh/ssh_host*
/etc/init.d/sshd restart
然后重新使用底下的方式來進行聯機的動作:
[root@www ~]# ssh root@localhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @ <==就告訴你可能有問題
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
a7:2e:58:51:9f:1b:02:64:56:ea:cb:9c:92:5e:79:f9.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:1 <==冒號后面接的數字就是有問題數據行號
RSA host key for localhost has changed and you have requested strict checking.
Host key verification failed.
上述的表格出現的錯誤訊息中,特殊字體的地方在告訴你:/root/.ssh/known_hosts 的第 1 行,里面的公鑰與這次接收到的結果不同, 很可能被攻擊了!那怎辦?沒關系啦!請你使用 vim 到 /root/.ssh/known_hosts ,並將第 1 行(冒號 : 后面接的數字就是了) 刪除,之后再重新 ssh 過,那系統又會重新問你要不要加上公鑰啰!就這么簡單! ^_^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM