
我多年來一直使用 ssh 登入我租用的遠端伺服器。上週我收到他們的訊息說他們升級了我的帳戶和伺服器。現在,當我登入時,我從 ssh 收到此訊息
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The RSA host key for mydomain.com has changed,
and the key for the corresponding IP address X.X.X.X
is unknown. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
XXxXXXXXXX
Please contact your system administrator.
Add correct host key in /home/myaccount/.ssh/known_hosts to get rid of this message.
Offending key in /home/myaccount/.ssh/known_hosts:7
RSA host key for mydomain.com has changed and you have requested strict checking.
Host key verification failed.
現在,我假設這是由我的主機升級我的伺服器觸發的。所以我想再次信任這個網站。但我不太明白怎麼做。
我查看了known_hosts,所有內容都是公鑰。但我無法判斷其中哪一個來自該特定伺服器的舊版本。我也不知道如何為主機取得正確的金鑰;上次聯絡的時候,我想ssh只是跟我確認了一下,就自動儲存了。現在它說我已要求嚴格檢查,但我不知道我何時執行此操作或在哪裡重置它。
答案1
該行:
Offending key in /home/myaccount/.ssh/known_hosts:7
表示舊金鑰位於您的known_hosts 檔案的第7 行。使用您最喜歡的編輯器刪除第 7 行。
您也可以使用 ssh-keygen -R 刪除條目:
# ssh-keygen -R hostname -f ~/.ssh/known_hosts
僅供參考,這些不是公鑰,而是主機的哈希表示。
您可以使用以下命令列出已知的主機檔案:
$ ssh-keygen -lv -f ~/.ssh/known_hosts
然後它將顯示密鑰和 ASCII 藝術表示:
2048 0f:3b:8a:02:75:f1:68:0f:32:8a:7a:0f:ef:69:f8:a0 |1|aa3F96t0nzhqLpt+lJx4msNAGQI=|740B4+NTrQhAx/DWXHf6QLrBpz8= (RSA)
+--[ RSA 2048]----+
| |
| . |
| = |
|o * . |
|o= o S |
|+ . + |
|..o. o . |
|..++.o . . |
|E. *B . |
+-----------------+
理論上,您可以將其列印出來並將其保存在安全的地方。當發生可疑情況時,您有一份副本可供參考。
答案2
我要補充的是,在聽取我尊敬的伺服器故障同事的建議並從您的known_hosts文件中刪除該行之前,您應該與另一端的客戶服務人員交談,並確保他們確實做了一些可能導致此密鑰的事情改變。
答案3
您需要編輯 /home/myaccount/.ssh/known_hosts 檔案並刪除與舊伺服器的 IP 位址或主機名稱相符的項目。之後,您應該像平常一樣透過 ssh 連接到伺服器,它會提示您輸入新密鑰並詢問您是否要新增它。只需說“是”即可! :) 除非發生變化,否則它不會再次詢問您。
希望有幫助。
編輯:您的known_hosts條目很可能看起來像這樣
[主機名稱或IP位址] [金鑰類型,一般為ssh-rsa] [這裡的金鑰,即ASDFJAKj3klje35u9086095468kjflADf...]