一.错误描述
二.解决方案
输入以下指令:
ssh-keygen -R XXX(ip地址)
按照我的例子(ip:10.165.7.136),会返回以下信息:
重新尝试连接:
输入yes,按下回车,成功连接。以上就是解决方案,如果想了解为什么这样的,可以继续往下看。
三.原因分析
当两个设备第一次进行链接时,会在~/.ssh/konwn_hosts 中将被连接设备的公钥信息进行保存,后续再次链接时OpenSSH会核对公钥来进行一个简单的验证:
konwn_hosts文件的公钥信息如下:
(密文形式)
正常连接应该如下:
然而有时候被链接的那台设备系统被重装、IP 冲突等原因,会导致公钥信息没有对得上,所以导致错误:
而解决的方案很简单,就是在把记录在路径 ~/.ssh/konwn_hosts 中的公钥信息给删除,重新建立一个新的链接就行,而指令 ssh-keygen -R XXX(ip地址) 就是执行这个动作,甚至还贴心地将原来地公钥信息进行备份:
当然,你也可以手动删除指定的ip,使用vi/vim打开konwn_hosts文件,你会发现里面的东西我和的一样是密文形式的,这是因为新版的系统里的安全机制,为了防止某个不轨人士进行远程撒毒,明文保存被替换成了通过算法计算的密文形式,当然你可以使用以下指令来查询到某个ip的密文是多少:
ssh-keyscan XXX(IP地址)
以我的ip为例子,可以看到输出了三个不同算法算出来的密文信息:
我们在konwn_hosts文件中找到这个几个密文信息,将其删除,保存,重新链接即可。当然如果你觉得电脑就一个人用没必要加密,也可以将加密给关闭,使用vi/vim来编辑路径 /etc/ssh/ssh_config 中的字段:
将该字段修改为 no,保存退出,删除公钥信息重新链接一次,你会发现新保存的公钥就是明文的信息。
————————————————
版权声明:本文为CSDN博主「性感博主在线瞎搞」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41884002/article/details/123358315
- IDENTIFICATION WARNING CHANGED 方法 REMOTEidentification warning changed remote identification changed warning remote identification warning changed方法 identification warning changed办法 identification warning changed服务器 identification错误warning changed identification错误changed remote 密钥identification changed remote identification changed代码github configured artifacts warning方法