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连接也是同样的道理。
相关推荐
周杰伦_Jay2 小时前
【Spring Cloud Alibaba】微服务组件详解:电商场景落地实践
微服务·云原生·架构
徐子元竟然被占了!!3 小时前
Linux-systemctl
linux·数据库·oracle
码事漫谈3 小时前
C++ 多线程开发:从零开始的完整指南
后端
9ilk3 小时前
【C++】--- 特殊类设计
开发语言·c++·后端
码事漫谈3 小时前
十字路口的抉择:B端与C端C++开发者的职业路径全解析
后端
老前端的功夫4 小时前
Vue 3 性能深度解析:从架构革新到运行时的全面优化
javascript·vue.js·架构
提笔了无痕4 小时前
git基本了解、常用基本命令与使用
git·后端
java1234_小锋5 小时前
Spring IoC的实现机制是什么?
java·后端·spring
喵个咪5 小时前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:JWT 集成指南
后端·go
绝不收费—免费看不了了联系我5 小时前
Fastapi的单进程响应问题 和 解决方法
开发语言·后端·python·fastapi