ssh 连接,known_hosts 为空,但我收到警告“远程主机标识已更改”并询问密码

Posted

技术标签:

【中文标题】ssh 连接,known_hosts 为空,但我收到警告“远程主机标识已更改”并询问密码【英文标题】:ssh connexion, known_hosts empty but I get the warning "REMOTE HOST IDENTIFICATION HAS CHANGED" and password asked 【发布时间】:2017-01-10 19:25:39 【问题描述】:

我为我和一个朋友使用了一个免费的 ssh 聊天应用程序。 以前,他可以毫无问题地连接到我的聊天(通过 ssh)。

但是我在我的 Linux 中更改了用户会话,我必须使用以下命令生成一个新的 ssh 密钥:

ssh-keygen -t rsa -b 4096 -C "myemail@example.com"

我从我的新用户会话开始了 ssh 聊天。这完美无缺。 (我可以通过另一台本地计算机连接到聊天)

但是当我的朋友尝试连接到聊天时,他收到以下警告:

而且“有时”,shell 要求他输入密码(朋友这么说) 因此,我要求他通过以下方式清除警告消息中显示的文件 known_hosts:

ssh-keygen -R myip
ssh-keygen -R -F myip
sudo ssh-keygen -R myip
sudo ssh-keygen -R - F myip
#we try severals commands

现在 known_hosts 文件是空的,但是当朋友尝试通过 ssh 连接到我的聊天时,他总是收到警告。

我不明白为什么他在 known_host(警告消息中显示的路径)为空时收到此警告? (计算机重新启动)

为什么有时,shell 要求他输入密码? (对不起,我没有更多细节......)。在我的初始用户会话中,当我的朋友连接到 ssh 应用程序时,从未询问过密码

【问题讨论】:

不要在图片中粘贴文字。该文件不能为空。向我们展示文件 (cat ~/.ssh/known_hosts)。 ssh remote host identification has changed的可能重复 【参考方案1】:

我们通过 ssh-kegen 删除主机时忘记添加端口号。

所以,我的朋友执行:

ssh-kegen -R [xxx.xxx.xxx.xxx]:yyyy
# xxx.xxx.xxx.xxx the ip of the server where is the ssh chat
# yyyy, le port number used by the application

这行得通 :) 他可以毫无问题地连接到聊天室

【讨论】:

以上是关于ssh 连接,known_hosts 为空,但我收到警告“远程主机标识已更改”并询问密码的主要内容,如果未能解决你的问题,请参考以下文章

ssh 忽略known_hosts连接

scp 时遇到 ssh连接所生成的known_hosts出现的问题

06: known_hosts文件作用,以及常见问题

关于.ssh目录下的known_hosts文件的补充

SSH之known_hosts文件

SSH之known_hosts文件