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 为空,但我收到警告“远程主机标识已更改”并询问密码的主要内容,如果未能解决你的问题,请参考以下文章