![Putty從哪裡取得伺服器主機公鑰?](https://rvso.com/image/1654744/Putty%E5%BE%9E%E5%93%AA%E8%A3%A1%E5%8F%96%E5%BE%97%E4%BC%BA%E6%9C%8D%E5%99%A8%E4%B8%BB%E6%A9%9F%E5%85%AC%E9%91%B0%EF%BC%9F.png)
我正在登入 Debian 盒子,並收到安全警報,其中顯示了主機公鑰。當我將 PuTTY 報告的完整公鑰與 ~/.ssh/authorized_keys 中的公鑰進行比較時,我發現它們不匹配。
我是否被中間人攻擊了或我誤解了什麼?
答案1
我不清楚私鑰 /etc/ssh/ssh_host_${type}_key 在連線中扮演什麼角色。目前尚不清楚,當攻擊者可以檢查從被攻擊的伺服器發送的公鑰,介入並欺騙完全相同的公鑰時,讓伺服器向我發送公鑰有何幫助
需要明確的是,伺服器實際上並沒有將您的公鑰重新發送回給您。伺服器有它自己的它發送給您的完全獨立的密鑰 - “主機密鑰”。主機金鑰的公共和私有部分都儲存在 /etc/ssh 中。
伺服器沒有只是發送公鑰;它還發送一個簽名使用相應的私鑰製作,客戶端可以將其用作證明。 (每個連接所簽署的資料都是唯一的。)攻擊者可以發送相同的公鑰,但無法產生簽署。
這也是憑證在 SSL/TLS(HTTPS 等)中的工作方式。
伺服器也會以相同的方式驗證您自己的身份驗證金鑰 – 即 PuTTY 不僅單獨發送您的公鑰,還使用您的私鑰對訊息進行簽名,這樣其他人就無法像您一樣登入查看您的authorized_keys文件。