短信预约-IT技能 免费直播动态提醒
SSH协议怎么样?为什么正常的连接突然报错Identification问题
- 但是我在使用SSH的过程中居然会出现Remote Host Identification Has Changed error and solution 。 既然有了问题就得解决,接下来我们看看问题是如何解决的。
场景
- 本来通过ssh 连接的服务突然连接不上了,这可打的我措手不及。
- 这台服务是我的虚拟机,之前连接都是没有问题的,而且也确认了用户名是合法的,还没让我输入密码所以不存在密码错误的情况。
问题定位
- 通过问题报错语句[Remote Host Identification Has Changed error and solution] 。 其中 identification 表示认证的意思,翻译过来就是认证失败了。好端端的怎么会认证失败呢?
- 随后就是自我反省的日子了。反思好久还好朋友给我提醒会不会和你重装系统有关系呢?结合这个问题场景感觉有点关系,之前因为系统版本升级所以就做了一个重装系统的操作。现在想来虽然IP还是那个IP,但是服务已然不是之前的服务了。
- 经过翻阅资料发现问题不是重装系统导致的,确切的说并不是重装系统直接导致的,而是因为我们重装了 OpenSSH 导致服务认证失败了。
ssh存储
- 在解决这个问题之前我们先开个小灶, 你知道 ssh 连接的信息存储在哪里吗?你是否注意到当第一次连接某个服务的时候需要你输入yes or no 的确认
- 第一次连接需要我们确认是否继续连接,输入 yes 后服务器的连接信息就会追加到 known hosts 中,对应的位置是 ~/.ssh/known_host。
- 打开文件看一看就能发现,是每个服务的一种签名存储,所以当我们重新安装了OpenSSH 后这里的签名就失效了。
回到正题
- 知道了ssh 存储签名位置过期导致的连接不上了,那么就好解决了我们直接删除 192.168.0.253 对应的签名就可以了。但是问题还是有点小麻烦,上面我们也看到了同一个IP 好像存在好多个签名。这该删除哪一个呢?理论上全部就可以了。还有个问题就是需要我们定位删除也很麻烦。好在linux OpenSSH 给我们提供了命令。
ssh-keygen -R {ssh.server.ip.address} -f file
- 执行 ssh-keygen 之后就会打印发现的和指定服务相关的配置了。然后就会进行更新,我们再次连接就会让我们在执行一次确认了,后面就可以正常操作了。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341