24

我正在尝试通过装有 Cygwin 的 PC 连接到我的 UBUNTU。我可以毫不费力地 WINSCP,但是当我通过命令行 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
5d:84:de:4e:a8:81:df:22:06:23:98:34:cd:26:f5:1a.
Please contact your system administrator.
Add correct host key in /home/Trevor/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/DIRECTORY
ECDSA host key for HOSTNAME has changed and you have requested strict checking.
Host key verification failed.

所以我查了一下,它说我需要host key在我的.ssh文件夹中更改我的文件home夹。嗯,没有,所以我做了一个。再次尝试并得到同样的错误。

该怎么办?

4

8 回答 8

36

“主机密钥验证失败”表示远程主机的主机密钥已更改。

ssh 将远程主机的主机密钥存储在 ~/.ssh/known_hosts 中。您可以手动编辑该文本文件并删除旧密钥(您可以在错误消息中看到行号),或者使用

ssh-keygen -R hostname
于 2014-12-01T06:08:47.723 回答
12

尝试

 rm -f /home/user/.ssh/known_hosts

或从 known_hosts 中删除有问题的密钥

ssh-keygen -R hostname
于 2014-06-16T07:06:40.937 回答
3

这通常意味着您的远程主机的主机密钥已更改。它可用于避免中间人的攻击并确保您的主机安全。您可以使用以下方法简单地删除它:

ssh-keygen -R hostname | ip address 

或者

ssh-keygen -f "/root/.ssh/known_hosts" -R ip address
于 2018-07-10T05:46:25.190 回答
2
  1. 去 known_hostsvim ~/.ssh/known_hosts
  2. 删除导致此问题的主机名HOSTNAME
于 2018-07-31T17:54:26.687 回答
2

它主要发生在您的远程服务器密钥更改并且您的系统具有旧密钥时。所以我们需要在下面的文件中清除你的远程服务器的密钥。

  1. ]#vi ~/.ssh/known_hosts
  2. 删除导致问题的文件中的主机条目。如下所示

1x.xx.xx.xx ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHvbhdjhyyeindHAyNTYAAABBBAMazUadnY2m81h0qVQyaKN3tiUSrIPw42rz7orVM9gusGpDDxtFbjMwxpjGOevVba1KNY5eI1yZx9U+uTz0

3.保存文件并使用您的登录信息重试。

于 2020-07-22T13:32:06.880 回答
1

因此,自从您上次从 Cygwin SSH 到它后,您的 ubuntu 主机密钥似乎已更改。

消息已经告诉你该怎么做,

cd /home/Trevor.ssh 
open know_hosts file and delete the old key of your ubunto box 
once the key is removed, ssh to your ubuntu box again
于 2013-09-26T07:02:17.047 回答
1

使用删除 ssh 缓存

ssh-keygen -R ipAdress

前任:ssh-keygen -R 43.224.158.621

希望这会奏效

于 2019-10-08T04:55:16.040 回答
0

在 Mac 和 Ubuntu 16.04 中测试

HOSTNAME 的 ECDSA 主机密钥已更改,您已请求严格检查。主机密钥验证失败。方法,

如果您收到此错误消息,则您尝试连接的主机之前已连接,并且可能 EDSA 密钥现在不匹配。这通常发生在您处于 DHCP 网络下并且多个设备在不同的时间实例分配有相同的 IP 时。结果是密钥不匹配,即 EDSA 密钥被捕获到您的系统中以获取该主机名。

为了摆脱这个问题,复杂的方法是从

vim ~/.ssh/known_host (你可以用任何东西代替vim)

删除包含主机名的整行,这是您的痛点

主机名(例如 192.168.1.123) EDSA_key

它应该可以在不重新启动系统的情况下工作。

不建议

否则,困难的方法是删除文件的所有内容(截断),永远不要完全删除文件,这可能会导致其他问题,也不要修改文件的权限。

于 2019-02-12T06:48:34.713 回答