SSH协议怎么样?为什么正常的连接突然报错Identification问题

SSH

  • SSH 主要就是一种连接协议,为什么我们需要SSH呢?,传统的协议传输的内容一旦被截获就会完全暴露,内容将会被暴露出去。SSH协议通过对网络数据进行加密和验证,建立SSH客户端和SSH服务器之间的安全隧道,在不安全的网络环境中为网络服务提供了安全的传输通道。

兼具操作简单和传输效率高的优点,但它们都存在相同的问题,即明文传输数据带来的安全隐患。SSH采用加密传输数据、提升认证强度等手段,克服了Telnet和FTP应用中的安全性问题,实现了安全的远程登录和文件传输业务。

  • 但是我在使用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 给我们提供了命令。
shell 复制代码
ssh-keygen -R {ssh.server.ip.address} -f file
  • 执行 ssh-keygen 之后就会打印发现的和指定服务相关的配置了。然后就会进行更新,我们再次连接就会让我们在执行一次确认了,后面就可以正常操作了。

总结

  • linux 一切皆文件的思想简直太方便了。包括我们git 通过ssh连接也是同样的道理。
相关推荐
Wang's Blog1 小时前
Linux小课堂: 网络配置详解之DHCP动态分配与静态IP地址设置
linux·网络·tcp/ip
摇滚侠2 小时前
Spring Boot3零基础教程,KafkaTemplate 发送消息,笔记77
java·spring boot·笔记·后端·kafka
CS Beginner3 小时前
【Linux】Tomcat基本配置
linux·运维·tomcat
黑翼杰克斯5 小时前
如何裁剪u-boot,保留其必要功能,使体积尽可能小
linux·1024程序员节
计算机学长felix5 小时前
基于SpringBoot的“面向校园的助力跑腿系统”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·后端
盈创力和20075 小时前
构建未来工业感知层:以太网多参量传感器的融合架构与技术实践
嵌入式硬件·架构·以太网温湿度传感器·多参数传感器
紫荆鱼6 小时前
设计模式-迭代器模式(Iterator)
c++·后端·设计模式·迭代器模式
RainSky_6 小时前
LNMP 一键安装包部署 Django 项目
后端·django·1024程序员节
追逐时光者7 小时前
一个开源免费、轻量级的 Avalonia UI 控件库
后端·.net
间彧7 小时前
Java守护线程详解
后端