设置 SSH 密钥的初学者问题

Posted

技术标签:

【中文标题】设置 SSH 密钥的初学者问题【英文标题】:Beginner Problem in Setting SSH keys 【发布时间】:2010-10-10 11:29:08 【问题描述】:

我收到此错误

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

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

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

https://***.com/questions/321618

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于设置 SSH 密钥的初学者问题的主要内容,如果未能解决你的问题,请参考以下文章

eval 在 Windows 上无法识别

github设置添加SSH(转载自:破男孩)

github设置添加SSH

github设置添加SSH

github设置添加SSH

github设置添加SSH