- 錯誤型別:
- 其他錯誤
- 錯誤名稱:
- 警告:远程主机标识已更改
- 英文名稱:
- Warning: Remote host identification has changed
- 錯誤描述:
- 如果客户端认为这些指纹与它理解的正确指纹不同,你就会收到 "Warning: Remote host identification has changed" 错误。
安全的網際網路連線不僅是理想狀態,而且是必不可少的。事實上,我們甚至可以說這是網站的第一要務。警告: 遠端主機標識已更改 “錯誤可保護您的連線免受某些惡意攻擊,但在某些情況下,您也可能無意中導致該錯誤。
該錯誤與安全殼(SSH)金鑰和客戶端將檢查的伺服器 “指紋” 有關。如果 Secure Shell 認為有問題,它就會阻止對伺服器的訪問併產生錯誤。但你只需幾步就能解決這個問題。
在接下來的幾分鐘裡,我們將向你展示如何修復 “Warning: Remote host identification has changed(警告:程主機標識已更改)” 錯誤。首先,讓我們來詳細介紹一下錯誤資訊本身。
什麼是 “Warning: Remote Host Identification Has Changed” 錯誤?
連線網路伺服器最安全的方法之一是使用 SSH。這是一種命令列工具,能讓你安全地訪問不安全的網路。可以把它看成是一種 “超級 SFTP” 型別的設定,儘管在實踐中並不能進行 1:1 的比較。
只要有正確的登入憑證,你幾乎可以在任何可以使用網際網路的地方訪問你的網站。此外,大多數 MacOS 和 Linux 機器的作業系統(OS)都內建了 SSH 客戶端。對於 Windows,你需要使用一個專用介面(稍後我們將詳細討論)。
至於 “警告: 遠端主機標識已更改 “錯誤,這與客戶端將進行的安全檢查有關。SSH 連線使用專用 “金鑰”(儲存在計算機上的小檔案)作為身份驗證。這有點像安全套接字層(SSL)握手,事實上,SSH 和 SSL 之間有一些高層次的相似之處。
金鑰的作用之一是提供主機伺服器的永久指紋。這將確保連線準確無誤,不會受到 “中間機器” 攻擊。
如果客戶端認為這些指紋與它理解的正確指紋不同,你就會收到 “Warning: Remote host identification has changed” 錯誤:
[user@hostname ~]$ ssh root@user @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 a host key has just been changed. The fingerprint for the RSA key sent by the remote host is xx:xx:xx. Please contact your system administrator. Add correct host key in /home/hostname /.ssh/known_hosts to get rid of this message. Offending RSA key in /var/lib/sss/pubconf/known_hosts:4 RSA host key for user has changed and you have requested strict checking. Host key verification failed.
就錯誤而言,這是一個詳細而清晰的錯誤-它會告訴你發生了什麼、可能的原因以及如何修復。
不過,在向你展示如何修復 “Warning: Remote host identification has changed” 錯誤。
已知主機檔案如何幫助 SSH 驗證
你會發現,錯誤資訊中提到了一個 known_hosts 檔案。從檔名就能看出它包含的內容,但為了清楚起見,它是計算機已知的 SSH 遠端主機列表。它被用作身份驗證過程中的參考客戶端檔案。
第一次連線伺服器時,你通常會在介面上收到一個確認請求,詢問你是否要連線。如果要連線,該指紋就會成為 known_hosts 檔案的一部分。
當然,如果該指紋與 known_hosts 檔案中的指紋不同,則可能表明有惡意使用者正在攻擊你。在其他情況下,你可能已經知道為什麼會出現差異,但無論如何都要保持警惕。
如何修復 “Warning: Remote Host Identification Has Changed” 錯誤
您可以修復 Windows 和 macOS 都會出現 “Warning: Remote host identification has changed” 錯誤。不過,在 Mac 上這樣做的靈活性更大。
從 Windows 開始,我們將介紹許多可以恢復正常的方法。
注:除非你完全確信問題不是惡意的,否則不要嘗試修復錯誤。如果你確定你的連線不存在安全隱患,下面的步驟就是為你準備的。
1. Windows
需要注意的是,Windows 機器可能沒有 known_hosts 檔案。但如果使用 OpenSSH 客戶端,則會有一個檔案。要找到它,請開啟 Windows 搜尋欄,使用 %USERPROFILE% 命令導航到使用者資料夾。
這將在檔案資源管理器中開啟該目錄。其中還會有一個 .ssh 資料夾:
Windows 檔案資源管理器
該資料夾中的檔案是 known_hosts。你可以用記事本(或你喜歡的文字編輯器)開啟它。檔案中會有一個鍵值列表:
Windows 的 known_hosts 檔案
在這裡,你可以刪除導致問題的金鑰,然後重新儲存檔案。
有些使用者可能更喜歡 PuTTY 客戶端。這些鍵值位於登錄檔中,但其作用與 OpenSSH 相同。
你需要開啟 Windows 登錄檔編輯器(又稱 “regedit”)。你可以用自己喜歡的方式開啟,但最快捷的方法是在 Window 的搜尋欄中輸入應用程式的名稱:
Windows 開始選單中的登錄檔編輯器連結
在此,在 regedit 中查詢以下目標:
HKEY_CURRENT_USER/Software/SimonTatham/PuTTY/SshHostKeys/
您將在此看到與計算機上儲存的連線相關的條目列表。您的任務就是刪除造成問題的連線:
在 regedit 中刪除登錄檔鍵值
點選 “Delete” 按鈕後,還需要確認是否要刪除該鍵:
確認值刪除對話方塊
單擊 “Yes” 意味著金鑰將永遠消失,你應該不會再收到 “Warning: Remote host identification has changed” 錯誤。
2. Mac
Mac 有幾種修復 “警告:遠端主機標識已更改 “錯誤的方法: 遠端主機標識已更改 “錯誤–可以通過高階應用程式(如 SSH Config Editor)或終端。結果都是一樣的,所以我們建議你選擇更舒適(預算更充足)的方式。
我們的首選方法是在終端視窗(或 iTerm2,如果你使用該應用程式)中訪問檔案,並用專用的 Nano 或 Vim 編輯器開啟它。這是因為,無論你的經驗水平如何,每個人都可以訪問並直接使用它。
在這裡,我們將使用 Nano。首先,使用最舒服的程式開啟終端:
從 Spotlight 開啟終端
在視窗中執行 nano ~/.ssh/known_hosts
命令。這將開啟一個新的 Nano 例項,並顯示 known_hosts 檔案中的金鑰:
使用 Nano 編輯器 known_hosts 檔案
刪除導致 “Warning: Remote host identification has changed” 錯誤的金鑰,然後儲存更改。
你可能還想刪除整個 known_hosts 檔案,尤其是當你只在一兩個網站上使用 SSH 時。為此,你可以在終端視窗中執行 rm .ssh/known_hosts
。
在 Mac 上還有一種修改 known_hosts 檔案的方法:在命令列中使用 ssh-keygen 工具。如果你不想深入研究檔案本身,或者只想使用一個網站或金鑰,那麼這種方法就很不錯。
為此,請開啟終端視窗並執行 ssh-keygen
,然後輸入伺服器主機名。例如
ssh-keygen -R server.example.com
這不會問你是否要刪除指定的行,所以在繼續之前要確保你刪除的是正確的行:
使用 ssh-keygen 從已知主機檔案中刪除
完成後,就不會再出現 “Warning: Remote host identification has changed” 錯誤。
小結
網路安全不僅僅是安裝外掛和建立一個強大的密碼。登入伺服器時所使用的連線也需要高度注意。如果不想遭受中間人機器攻擊,就應該在登入時使用 SSH 訪問。
不過,這個系統幾乎太好用了。你可能會收到 “Warning: Remote host identification has changed” 錯誤的原因有很多,有些是無辜的。
無論如何,你都可以通過命令提示符或終端,使用少量命令立即修復錯誤。
評論留言