Ssh
無法連接到 AWS EC2 實例 - “主機密鑰驗證失敗”
我已經使用 Rails 包設置了一個 Ubuntu 實例,部署了我的應用程序,它執行良好。
但是當我嘗試使用 SSH 時,它不允許我進行遠端登錄並拋出如下錯誤:
Host key verification failed
.問題似乎一直存在。我已將彈性 IP 附加到該實例,但看不到公共 DNS。
我的實例在新加坡地區執行。
ssh
調試輸出:OpenSSH_5.8p1 Debian-7ubuntu1, OpenSSL 1.0.0e 6 Sep 2011 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to 46.137.253.231 [46.137.253.231] port 22. debug1: Connection established. debug1: identity file st.pem type -1 debug1: identity file st.pem-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-4ubuntu6 debug1: match: OpenSSH_5.5p1 Debian-4ubuntu6 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.8p1 Debian-7ubuntu1 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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. Please contact your system administrator. Add correct host key in /home/ubuntu/.ssh/known_hosts to get rid of this message. Offending RSA key in /home/ubuntu/.ssh/known_hosts:1 remove with: ssh-keygen -f "/home/ubuntu/.ssh/known_hosts" -R 46.137.253.231 RSA host key for 46.137.253.231 has changed and you have requested strict checking. Host key verification failed.
當您連接到 ssh 伺服器時,您的 ssh 客戶端會保留一個受信任主機列表作為 IP 和 ssh 伺服器指紋的鍵值對。使用 ec2,您經常將相同的 IP 與多個伺服器實例重用,這會導致衝突。
如果您已使用此 IP 連接到較早的 ec2 實例,現在連接到具有相同 IP 的新實例,您的電腦將抱怨“主機驗證失敗”,因為其先前儲存的對不再與新對匹配。
錯誤消息告訴您如何修復它:
/home/ubuntu/.ssh/known_hosts:1 中的違規 RSA 密鑰
刪除: ssh-keygen -f “/home/ubuntu/.ssh/known_hosts” -R 46.137.253.231"
替代方法只需打開 /home/ubuntu/.ssh/known_hosts 並刪除第 1 行(如“:1”所示)。
您現在可以連接並接收新的主機驗證。
請注意,通常 ssh 的 known_hosts 文件通常為主機名或 ip6 值儲存了第二行對,因此您可能需要刪除幾行。
警告:主機驗證很重要,這是您收到此警告的一個很好的理由。確保您期望主機驗證失敗。如果不確定,請勿刪除驗證鍵值對。