设置SSH密钥时的初学者问题

时间:2009-02-28 00:35:45

标签: ssh-keys

我收到此错误

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

错误消息的其余部分类似于here

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

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

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

4 个答案:

答案 0 :(得分:2)

问题是服务器的公钥已经从上次客户端连接时使用的公钥发生了变化,这可能表示试图欺骗您连接到以某种方式伪装成预期目标的服务器,为了窃取您的凭据或其他恶意行为。

如果服务器上的公钥已经明确更改,也会自然发生此消息,这可能由于多种合理原因而发生 - 在不久的将来,基于Debian的Linux发行版中的漏洞需要密钥重新生成例如,许多人。

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

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

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

答案 1 :(得分:1)

如果服务器上的密钥真的被更改了(即你不是中间人攻击的受害者),最容易想到的就是从消息中获取行号({{1} }),删除此行,登录服务器(并接受密钥)。

答案 2 :(得分:0)

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

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

https://stackoverflow.com/questions/321618

答案 3 :(得分:0)

我只是遇到这个错误,我想这是因为我以前在笔记本电脑上使用另一个Vagrant实例来完成我的工作分配,而现在该分配已完成,我正在尝试将Vagrant用于自己的工作项目,但旧的Vagrant实例的公钥仍在我的known_hosts文件中。因此,我只删除了known_hosts的{​​{1}}文件中的旧条目并保存了文件,错误消失了。