
我有兩種存取遠端主機 ssh 伺服器的方法:
使用其本機 IP 位址
使用其公用 IP 位址
昨天,我在遠端主機上重新安裝了 SSH 伺服器,並更新了我的已知主機文件本地IP位址。我現在已脫離本地網路並嘗試使用其連接到我的伺服器公有IP位址我意識到在重新安裝 SSH 服務後我忘記更新我的已知主機檔案。這給了我下面的常見錯誤。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ECDSA key sent by the remote host is
MD5:FINGERPRINT.
Please contact your system administrator.
Add correct host key in /Users/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/user/.ssh/known_hosts:25
ECDSA host key for [PUBLIC IP]:PORT has changed and you have requested strict checking.
Host key verification failed.
我 99% 確定這是因為我更改了 SSH 伺服器,但是,如果我想仔細檢查和驗證,我該怎麼做?
我的問題是
如何根據遠端主機儲存的指紋驗證遠端主機的新指紋當地的伺服器的IP位址?
我做了什麼
我運行了以下命令:
ssh-keygen -lv -f ~/.ssh/known_hosts
並發現為當地的我的伺服器的IP位址。我將其與從遠端主機發送給我的 SHA256 指紋進行了比較,它們看起來是相同的。
我怎樣才能100%確定?我這樣做正確嗎?
答案1
是的,你做得很好。如果您想讓 SSH 為您驗證,請編輯您的~/.ssh/known_hosts
檔案。找到列出伺服器本機 IP 位址和指紋的行,複製該指紋,然後使用它來取代伺服器公用 IP 位址行上的舊指紋。