修復:無法驗證主機真實性的問題
但是,由於中間人攻擊等各種因素,該問題仍然可能發生。無論問題的原因是什麼,您都可以使用本指南中簡單而有效的解決方案來解決它。
為什麼我無法確定主機的真實性?
下面列出了您可能無法在嘗試連接的遠程服務器上確定主機錯誤的真實性的一些原因:
- 首次連接– 如果您第一次使用 SSH 客戶端連接到服務器,您肯定會收到此錯誤。這是連接驗證和身份驗證所需的一種安全警報形式。
- 遠程密鑰錯誤– 在某些情況下,此錯誤可能是由於主機密鑰不正確造成的。這可能是因為公鑰已被更改(通過更新)或被洩露。
- 多個主機密鑰的可用性– 如果服務器主機密鑰屬於不同類型,您可能會遇到此錯誤。這是因為 ECDSA 可能是所需的一種,而已知主機中的一種是 RSA。
- 中間人攻擊– 如果您在與已知主機的後續連接中遇到此問題,則可能是由於攻擊者在您與該主機的連接之間進行偵聽。
現在我們知道了此錯誤的原因,讓我們使用以下解決方案來修復它。
如何驗證和驗證主機密鑰?
- 檢查 SSH 密鑰算法的無法建立主機真實性提示的第二行第一個字。
- 接下來,檢查指紋的前幾個字符以確定哈希值。通常是SHA256或 MD5。
- 現在,登錄到遠程服務器並根據哈希運行以下命令: 對於 SHA256: 對於
ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub
MD5:ssh-keygen -E md5 -lf /etc/ssh/ssh_host_ed25519_key.pub
- 最後,將指紋與在設備上打開 SSH 連接時看到的指紋進行比較。如果相同,則可以繼續連接。否則,請取消連接並報告問題。
如何修復無法建立主機真實性錯誤?
在繼續執行本節中的修復之前,請嘗試執行以下故障排除步驟:
- 檢查網絡連接
- 升級SSH軟件
- 確保-SSH/known_host可寫
如果問題仍然存在,您現在可以繼續執行以下詳細解決方案:
1.跳過HostKey檢查
這是修復無法確定主機真實性錯誤的最簡單方法之一。然而,它風險很高,因為如果提示是由中間人攻擊引起的,它基本上會刪除警報並暴露您的電腦。
但是,如果您確定錯誤消息是因為主機密鑰已更新或重新配置,請在known_host 文件中添加以下條目:$ ssh -o "UserKnownHostsFile=/dev/null"-o "StrictHostKeyChecking=no"[email protected]
這會創建一個空驗證文件並幫助您繞過安全警報。要為當前用戶永久設置此功能,請將以上條目添加到~/.ssh/config文件中。
最後,將其添加到/etc/ssh/ssh_config文件中,而不是將其應用於所有用戶。
2. 驗證遠程主機
在某些情況下,此問題可能是因為主機密鑰錯誤或不起作用。此外,服務器本身可能不合法。
在這種情況下,您需要執行 SSH 主機密鑰驗證,以確保密鑰正確並確保服務器不會受到損害。
為此,請運行以下命令(使用實際域或 IP 更改網站):ssh-keyscan website.com
此命令將在您的終端上顯示遠程主機的公鑰。您現在可以將公鑰與服務器管理員提供的或known_hosts 文件中的公鑰進行比較。
3.刪除舊的主機密鑰
如果無法確定主機 CA 的真實性錯誤是由於對密鑰進行更改所致,則需要刪除舊密鑰。
為此,請運行以下命令(使用實際域或 IP 更改網站):ssh-keygen -R website.com
這將從您的known_hosts 文件中刪除舊密鑰並解決問題。
4.刷新DNS緩存
- 按Windows + 鍵S ,鍵入 cmd,然後選擇“命令提示符”下的“以管理員身份運行”。
- 輸入以下命令並點擊Enter :
ipconfig/flushdns
- 最後,等待命令完成運行並再次嘗試連接。
有時,無法確定主機真實性的問題可能是由於 DNS 主機配置錯誤造成的。要解決此問題,您需要刷新 DNS 緩存並重新啟動連接。
清除已知主機是否存在任何風險?
known_hosts 文件保存了所有受信任的密鑰,不應被擦除。但如果您清除該文件,則不會導致任何問題。
您可能只會在與受信任服務器的後續連接中遇到無法建立主機真實性錯誤。
但是,當您使用 SSH 客戶端連接到另一台遠程主機後,將自動重新創建該文件。
如何防止將來出現主機真實性問題?
當您第一次連接到服務器時,無法確定主機真實性的問題是正常的。因此,理想情況下,您不應禁用安全警報。
但是,為了防止受信任的服務器上出現此錯誤,尤其是在後續連接上,請確保主機未受到損害,並且您正在連接到正確且更新的密鑰。
我們已經完成了本指南關於如何解決無法確定主機真實性問題的內容。在大多數情況下,此提示是正常的安全警報,但也可能意味著遠程主機已受到威脅。
就像SSH 配置問題上的錯誤所有者或權限一樣,可以通過運行一些命令來解決此問題。
另外,如果您在第一次連接到服務器時遇到錯誤,請知道這是正常現象。因此,如果您信任服務器,則可以選擇“是”選項。
發佈留言