VSCode连接Remote-SSH提示Host key verification failed怎么修复

落浩姑娘_4152

落浩姑娘_4152

2026-04-06

554人浏览

原创

Host key verification failed是OpenSSH因远程主机公钥与本地known_hosts不一致而拒绝连接,常见于服务器重装、IP复用等场景;应使用ssh-keygen -R 清理对应密钥,或检查ProxyJump路径、VSCode缓存及WSL/Windows known_hosts位置。

vscode连接remote-ssh提示host key verification failed怎么修复

为什么Remote-SSH会报Host key verification failed

这个错误不是VSCode的问题,而是OpenSSH在连接时发现远程主机的公钥和本地~/.ssh/known_hosts里存的不一致。常见于:服务器重装系统、IP复用旧机器、启用新SSH服务端配置(比如换了sshd_config里的HostKey路径),或者你之前连过另一台同名主机。

OpenSSH出于安全默认拒绝这种“密钥突变”,防止中间人攻击——所以它宁可断连,也不自动覆盖。

快速清理旧密钥的两种方式

手动删对应行最直接,也最可控:

  • 打开终端,运行:
    ssh-keygen -R <hostname></hostname>
    (把<hostname></hostname>换成你配置里写的主机名或IP,比如ssh-keygen -R 192.168.1.100)
  • 或者直接编辑~/.ssh/known_hosts,找到含该主机的那一行删掉(注意:一行可能对应多个主机,用空格分隔,别误删其他)

别用ssh-keygen -R *清空全部——万一你连过几十台生产机,全删了下次连都得重新确认,反而更麻烦。

连接时跳过验证?不推荐但有时真需要

仅限测试环境或内网可信网络,且你明确知道目标主机没被篡改:

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 在VSCode的Remote-SSH配置中,给对应主机加字段:
    "configFile": "/path/to/custom_ssh_config"
  • 然后在/path/to/custom_ssh_config里写:
    Host myserver
      HostName 192.168.1.100
      User myuser
      StrictHostKeyChecking no
      UserKnownHostsFile /dev/null
  • 注意:StrictHostKeyChecking no必须配合UserKnownHostsFile /dev/null,否则SSH仍会读默认known_hosts并报错

这个组合等于彻底放弃密钥校验,生产环境禁用。

为什么改了known_hosts还是报错

常见干扰项:

  • VSCode Remote-SSH插件缓存了旧连接状态:关掉VSCode,再删~/.vscode-server(或~/.vscode-remote)下的缓存目录(不影响你本地配置,只清远程代理状态)
  • 连接用了跳转主机(ProxyJump),实际校验的是跳板机的密钥,不是最终目标机——要删的是跳板机那行,不是目标机
  • Windows用户用WSL,要注意~/.ssh/known_hosts可能在WSL里,也可能在Windows的%USERPROFILE%.ssh\known_hosts,VSCode用哪个取决于你启动方式(从Windows GUI点开?还是从WSL终端里code .?)

密钥验证失败本身不难修,难的是搞清“到底在验证谁的密钥”。先确认连接路径,再定位known_hosts位置,比盲目删文件靠谱得多。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
c语言中null和NULL的区别
c语言中null和NULL的区别

c语言中null和NULL的区别是:null是C语言中的一个宏定义,通常用来表示一个空指针,可以用于初始化指针变量,或者在条件语句中判断指针是否为空;NULL是C语言中的一个预定义常量,通常用来表示一个空值,用于表示一个空的指针、空的指针数组或者空的结构体指针。

2023.09.22

549

3

java中null的用法
java中null的用法

在Java中,null表示一个引用类型的变量不指向任何对象。可以将null赋值给任何引用类型的变量,包括类、接口、数组、字符串等。想了解更多null的相关内容,可以阅读本专题下面的文章。

2024.03.01

1698

6

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.26

3299

3

查看端口占用情况windows
查看端口占用情况windows

端口占用是指与端口关联的软件占用端口而使得其他应用程序无法使用这些端口,端口占用问题是计算机系统编程领域的一个常见问题,端口占用的根本原因可能是操作系统的一些错误,服务器也可能会出现端口占用问题。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.27

2878

6

windows照片无法显示
windows照片无法显示

当我们尝试打开一张图片时,可能会出现一个错误提示,提示说"Windows照片查看器无法显示此图片,因为计算机上的可用内存不足",本专题为大家提供windows照片无法显示相关的文章,帮助大家解决该问题。

2023.08.01

1508

3

windows查看端口被占用的情况
windows查看端口被占用的情况

windows查看端口被占用的情况的方法:1、使用Windows自带的资源监视器;2、使用命令提示符查看端口信息;3、使用任务管理器查看占用端口的进程。本专题为大家提供windows查看端口被占用的情况的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.02

2619

5

windows无法访问共享电脑
windows无法访问共享电脑

在现代社会中,共享电脑是办公室和家庭的重要组成部分。然而,有时我们可能会遇到Windows无法访问共享电脑的问题。这个问题可能会导致数据无法共享,影响工作和生活的正常进行。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.08.08

3330

4

windows自动更新
windows自动更新

Windows操作系统的自动更新功能可以确保系统及时获取最新的补丁和安全更新,以提高系统的稳定性和安全性。然而,有时候我们可能希望暂时或永久地关闭Windows的自动更新功能。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.10

1657

3

windows boot manager
windows boot manager

windows boot manager无法开机的解决方法:1、系统文件损坏,使用Windows安装光盘或USB启动盘进入恢复环境,选择修复计算机,然后选择自动修复;2、引导顺序错误,进入恢复环境,选择命令提示符,输入命令"bootrec /fixboot"和"bootrec /fixmbr",然后重新启动计算机;3、硬件问题,使用硬盘检测工具进行扫描和修复;4、重装操作系统。本专题还提供其他解决

2023.08.28

2517

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程