鏈接報錯:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 的解決方法
Linux教程
2025-07-11 18:42
1030
問題
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ED25519 key sent by the remote host is
SHA256:DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY.
Please contact your system administrator.
Add correct host key in C:\\Users\\Administrator/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in C:\\Users\\Administrator/.ssh/known_hosts:182
Host key for x.x.x.x has changed and you have requested strict checking.
Host key verification failed.
解答
這是一個 ??SSH 安全警告??,表明你嘗試連接的遠程服務器的公鑰(主機密鑰)與你本地電腦(C:\\Users\\Administrator/.ssh/known_hosts
文件)記錄的該服務器的??舊公鑰不匹配??。
?? 這通常意味著兩種情況之一
-
??服務器端密鑰確實發(fā)生了正常變更:??
- ??最常見原因:?? 服務器被重建、重裝過操作系統。
- 其他原因:服務器端的 SSH 服務被重新配置或升級、管理員主動更換了密鑰、服務器硬件更換(可能導致一些系統生成的密鑰變化)。
- ??這是相對安全的情況??,但需要你??確認??變更的合法性。
-
??潛在的中間人攻擊:??
- 這是 SSH 協議設計這個警告的??首要目的??。如果有人在你的電腦和目標服務器之間進行監(jiān)聽(例如在公共網絡如咖啡店 Wi-Fi 上),他們可能會試圖將你的 SSH 連接重定向到他們控制的假服務器上。
- 如果這個假服務器冒充你的目標服務器,但使用了不同的密鑰(這是必然的),那么就會出現這個“主機密鑰變更”的警告。
- ??這是一種嚴重的安全風險!??
?? 如何判斷和處理?
??核心原則:在你絕對確認密鑰變更是合法的之前,不要忽視或繞過這個警告!??
-
??確認服務器是否發(fā)生過變更:??
- ??聯系服務器管理員:?? 這是??最可靠??的方法!詢問管理員:“服務器
x.x.x.x
的 SSH 主機密鑰是否在近期發(fā)生過變化?如果是,新的 SHA256 指紋是多少?” - ??檢查新指紋合法性:?? 管理員應能提供正確的、最新的指紋。將管理員提供的指紋與錯誤消息里顯示的 ??
SHA256:DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY
?? 進行比較。??必須完全一致??!
- ??聯系服務器管理員:?? 這是??最可靠??的方法!詢問管理員:“服務器
-
??比較后如何處理:??
- ??情況一:密鑰變更合法,且新指紋匹配管理員提供的??
- ??解決方法:移除舊記錄??。執(zhí)行以下命令來刪除
known_hosts
文件中這個 IP 地址對應的舊記錄:ssh-keygen -R x.x.x.x
- ??然后再次連接:?? 再次運行
ssh [email protected]
。你會看到一個新提示,詢問你是否信任這個新的指紋并保存它:The authenticity of host 'x.x.x.x (x.x.x.x)' can't be established. ED25519 key fingerprint is SHA256:DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY. Are you sure you want to continue connecting (yes/no/[fingerprint])?
- 仔細核對這個顯示的指紋
SHA256:DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY
??是否與你從管理員處獲得的一模一樣??。 - 如果??完全匹配??,輸入
yes
或直接粘貼那個指紋并按回車。連接會成功建立,并且這個新的指紋會保存到你的known_hosts
文件中。
- ??解決方法:移除舊記錄??。執(zhí)行以下命令來刪除
- ??情況二:無法確認變更的合法性或指紋不匹配??
- ??立即停止連接!?? ? 這可能是中間人攻擊。
- ??重新檢查你的網絡環(huán)境:?? 你連接的是否是可信網絡?公共 Wi-Fi?使用 VPN 是否能避免?
- ??再次聯系管理員:?? 強調你遇到了
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
錯誤,并告知服務器當前的指紋SHA256:DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY
,詢問這是否是他們預期的正確指紋。 - 在確認安全之前,??絕對不要??運行下一步中的潛在危險命令。
- ??情況三:密鑰變更合法,但你不想找管理員確認或手動輸入命令 (風險自擔)??
- ??你也可以手動編輯
known_hosts
文件:??- 打開文件
C:\Users\Administrator\.ssh\known_hosts
(用記事本或 VS Code 等文本編輯器)。 - 找到第
182
行 (錯誤消息里明確寫了Offending ... known_hosts:182
)。 - 刪除或注釋掉這一行。
- 保存文件。
- 打開文件
- 然后嘗試連接
ssh [email protected]
,它會提示你保存新指紋。
- ??你也可以手動編輯
- ??情況一:密鑰變更合法,且新指紋匹配管理員提供的??
? 絕對不要輕易使用的危險操作
- ??
ssh -o StrictHostKeyChecking=no [email protected]
??- 這條命令會??完全禁用主機密鑰檢查??。
- 這意味著它??會忽略密鑰不匹配的警告并自動添加新密鑰??。
- ??極其危險!?? 這會使你完全暴露在中間人攻擊之下。??僅在你絕對信任當前網絡環(huán)境,并且確認服務器密鑰變更極其頻繁是正常行為(這種情況非常罕見,比如某些動態(tài)測試環(huán)境)的情況下才可考慮,生產環(huán)境強烈不建議。??
?? 總結
- 這個警告非常 ??重要??,不要輕易忽略!
- ??首要步驟:嘗試聯系服務器管理員,確認密鑰變更是否合法以及新的 SHA256 指紋 (
DdkQGG1unkXle5hUAhFGGZ2HxK5jORxsLEsmcp5XdaY
) 是否匹配他們記錄的指紋。?? - 如果確認合法:使用
ssh-keygen -R x.x.x.x
刪除舊記錄,然后重新連接并驗證新指紋后輸入yes
保存。 - 如果無法確認合法性:??停止連接??,直到安全問題被澄清。
- 避免使用
StrictHostKeyChecking=no
,它破壞了重要的安全機制。