0

我收到这个错误

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

错误消息的其余部分与此处类似。

我的服务器中有 SSH 密钥。我的桌面上有我的私钥。我不确定我应该把它放在哪里。

Add correct host key in ~/Users/Sam/.ssh/known_hosts to get rid of this message.

我应该将服务器的公钥添加到文件中吗?

4

4 回答 4

2

问题是服务器的公钥已与您的客户端上次连接时使用的公钥不同,这可能表明试图欺骗您连接到以某种方式伪装成您的预期目标的服务器,以便窃取您的凭据或其他一些恶意行为。

如果服务器上的公钥已被显式更改,则该消息也会自然发生,这可能出于多种正当原因而发生 - 在不久的过去,基于 Debian 的 Linux 发行版中存在一个漏洞,许多人需要重新生成密钥,例如。

如果您可以确认您正在连接到预期的目的地,并且您知道任何密钥更改都是合法的,那么您通常可以接受密钥更改。或者,如消息所述,您可以通过替代(安全)通道获取服务器的公钥并更新客户端的本地副本,以便它再次识别服务器的凭据。

如果您不控制服务器,请联系控制服务器的个人或组织,并查明更改是否合法。

无需以任何方式修改您的私钥;这与您的密钥对无关。

于 2009-02-28T00:51:47.213 回答
1

如果服务器上的密钥确实被更改(即您不是中间人攻击的受害者),最简单的想法是从消息中获取行号(offending key is in path/known_host:line_number),删除此行,登录到服务器(并接受密钥)。

于 2009-02-28T01:53:13.633 回答
0

你的意思是,以编程方式?

可能您可以在此问题中发布的论坛上找到更好的支持:

https://stackoverflow.com/questions/321618

于 2009-02-28T00:37:27.107 回答
0

我只是遇到了这个错误,我认为这是因为我之前在我的笔记本电脑上使用了另一个 Vagrant 实例来完成我的工作任务,现在该任务已经完成,我正在尝试将 Vagrant 用于我自己的项目,但是旧 Vagrant 实例的公钥仍在我的known_hosts文件中。known_hosts所以我只是删除了文件中的旧条目127.0.0.1并保存了文件,错误就消失了。

于 2019-07-29T11:18:12.450 回答