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