当前位置: 首页 > news >正文

解决 VSCode SSH 连接报错:“REMOTE HOST IDENTIFICATION HAS CHANGED” 的问题

问题描述

在使用 VSCode 通过 SSH 连接远程服务器时,我们可能会遇到类似如下的错误日志:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
...
Offending ED25519 key in C:\Users\DELL/.ssh/known_hosts:15
Host key for [172.20.2.3]:36301 has changed and you have requested strict checking.
Host key verification failed.

最近,我由于服务器重装,导致了远程服务器的主机密钥(Host Key)发生了变化。当使用 VSCode 的 Remote-SSH 插件连接服务器时,SSH 客户端会在本地 known_hosts 文件中查找对应的旧密钥(本例中位置为 C:\Users\DELL.ssh\known_hosts 的第15行)。由于该密钥与服务器现在提供的密钥不一致,SSH 就会报出 Remote Host Identification Has Changed 的错误。
这一机制是 SSH 为了保证连接安全的一种手段,它可以防止中间人攻击。但在服务器重新安装、更新或更换密钥的情况下,这就导致了连接失败。

解决方案

针对这个问题,我们需要手动或自动从 known_hosts 文件中移除旧的主机密钥记录,让 SSH 在下次连接时自动添加新的密钥。以下是详细的步骤:

1. 确认服务器重装无误

首先确认服务器确实是重装了,而非遭到恶意攻击。如果确认服务器是正规重装,便可以放心更新主机密钥。

2. 移除旧的主机密钥

有两种方法可以移除旧的主机密钥记录:
方法一:使用 ssh-keygen 命令
打开命令行窗口,输入以下命令来移除旧的记录:

ssh-keygen -R "[172.20.2.3]:36301"

该命令会自动从 C:\Users\DELL.ssh\known_hosts 文件中删除与 [172.20.2.3]:36301 相关的旧密钥记录。
方法二:手动编辑 known_hosts 文件
如果你更倾向于手动操作,可以使用文本编辑器打开 C:\Users\DELL.ssh\known_hosts 文件,找到第15行(错误日志中提到)对应的密钥,并将其删除。保存文件后,再次尝试连接。

3. 重新连接服务器

删除旧密钥后,重新使用 VSCode 连接远程服务器。当 SSH 连接时,会提示是否接受新的主机密钥,输入 “yes” 接受即可。此时新的主机密钥会自动写入 known_hosts 文件中,后续的连接就不会再报错了。

4. 验证连接是否成功

完成上述步骤后,请检查 VSCode 的 SSH 插件日志,确认连接不再报上述错误信息。如果连接正常,即表示问题已经解决。

总结

服务器重新安装后,主机密钥发生变化,这是导致 VSCode 连接失败的主要原因。通过以下几个步骤,我们可以简单地解决该问题:

  1. 确认服务器重装无误:确保是合法重装,而非攻击风险。
  2. 移除旧密钥记录:使用 ssh-keygen -R “[172.20.2.3]:36301” 命令或手动编辑 known_hosts 文件。
  3. 重新连接:接受新的主机密钥,连接成功后验证。

相关文章:

  • pycharm配置镜像源【pycharm最新版(23.2.5及以上)方法】
  • 使用 WebP 优化 GPU 纹理占用
  • AT指令集-LTE
  • PHP优化技术
  • Oracle Linux Server 7.9安装fail2ban
  • 嵌入式八股,为什么单片机中不使用malloc函数
  • 高效手机检测:视觉分析技术的优势
  • LinuX---Shell---变量
  • A1000学习笔记
  • Flask使用Blueprint注册管理路由
  • SQLMesh 系列教程:解锁SQLMesh的宏与变量魔法
  • 日志存储与分析
  • CSS3-流星雨
  • 大型语言模型与强化学习的融合:迈向通用人工智能的新范式——基于基础复现的实验平台构建
  • 办公自动化:使用 Python 生成 Word 文件:自动生成数据库文档 Word 文件
  • 从PDF文件中提取数据
  • 基于 Verilog 的时序设计:从理论到实践的深度探索
  • SpringMVC(七)数据校验+VO++脱敏
  • 五模型对比!Transformer-GRU、Transformer、CNN-GRU、GRU、CNN五模型多变量时间序列预测
  • 【sql靶场】第13、14、17关-post提交报错注入保姆级教程
  • 网站建设的看法有哪些/户外广告
  • 怎么做音乐网站/重庆seo关键词优化服务
  • 视觉品牌网站建设/企业专业搜索引擎优化
  • 淘宝优惠群的网站是怎么做/网上推广方式
  • 做网站开发的想接私活/网站功能
  • 网站背景跟着鼠标动的图怎么做/百度网盘搜索神器