VS Code Remote-SSH 连接Jetson踩坑完整解决记录(网段不通+主机密钥变更双重故障)

VS Code Remote-SSH 连接Jetson踩坑完整解决记录(网段不通+主机密钥变更双重故障)

一、问题背景

开发环境:Windows10 + VS Code Remote-SSH + NVIDIA Jetson 嵌入式设备

故障现象分两个阶段:

  1. 第一阶段:SSH连接超时 connect to host xxx port 22: Connection timed out,网线直连依旧无法连通;
  2. 第二阶段:修改IP网段互通后,VS Code弹窗提示无法与xxx建立连接 ,终端日志打印 Host key verification failed 主机密钥校验失败,远程服务管道写入中断。

二、故障1:网线直连仍SSH连接超时(网段不匹配)

1. 故障根因

Windows有线网卡IP:10.168.3.106/24,Jetson静态IP:192.168.3.101/24

两个设备子网掩码均为255.255.255.0,分属完全独立网段,直连网线无路由转发,数据包直接超时。

2. 两种修复方案

方案1:修改Windows有线网卡IP(推荐,无需改动Jetson)
  1. 打开「控制面板-网络和共享中心-更改适配器设置」,找到插Jetson网线的以太网;

  2. 右键属性 → IPv4,手动配置静态IP:

    • IP地址:192.168.3.105
    • 子网掩码:255.255.255.0
    • 网关、DNS全部留空;
  3. CMD测试连通:

    cmd 复制代码
    ping 192.168.3.101
    ssh nvidia@192.168.3.101
方案2:修改Jetson静态IP适配Windows网段
  1. Jetson端编辑netplan网络配置:

    bash 复制代码
    sudo nano /etc/netplan/00-installer-config.yaml
  2. 修改IP配置段:

    yaml 复制代码
    addresses: [10.168.3.101/24]
  3. 生效配置:

    bash 复制代码
    sudo netplan apply
  4. Windows端测试连通:

    cmd 复制代码
    ping 10.168.3.101
    ssh nvidia@10.168.3.101

3. 配套补充排查

  1. 确认网口状态:Windows以太网显示「已连接」,更换网线/网口排除硬件故障;

  2. Jetson放行SSH端口:

    bash 复制代码
    sudo ufw allow 22
    sudo ufw reload
  3. 临时关闭Windows防火墙,避免拦截ICMP、SSH数据包。


三、故障2:网段互通后VS Code连接失败(主机密钥校验报错)

1. 日志关键报错

复制代码
Host key for 10.168.3.101 has changed and you have requested strict checking.
Offending ECDSA key in C:\Users\16078\.ssh\known_hosts:13
Failed to parse remote port from server output
过程试图写入的管道不存在

2. 故障根因

Jetson刷机/重装系统后,设备SSH指纹(ECDSA密钥)发生变更;Windows本地known_hosts缓存了旧密钥,SSH严格校验机制直接拦截连接,导致VS Code远程服务安装管道中断,无法建立会话。

3. 分步标准修复流程

步骤1:清除失效旧主机密钥

打开Windows CMD执行命令,一键删除对应IP缓存密钥:

cmd 复制代码
ssh-keygen -R 10.168.3.101
步骤2:手动SSH登录,信任新设备指纹

CMD执行登录命令,弹出密钥确认时输入yes,完整登录一次设备:

cmd 复制代码
ssh nvidia@10.168.3.101

关键前提:必须手动ssh登录成功,VS Code才能正常安装远程服务。

步骤3:清理VS Code远程缓存
  1. 弹窗点击「关闭远程」,完全退出VS Code;

  2. 删除本地缓存目录:

    复制代码
    C:\Users\你的用户名\.vscode\extensions\ms-vscode-remote.remote-ssh-版本号\.vscode-server
  3. 重启VS Code,重新发起SSH连接。

4. 兜底备用方案(永久关闭严格校验)

编辑SSH配置文件 C:\Users\你的用户名\.ssh\config,写入主机配置:

复制代码
Host 10.168.3.101
  HostName 10.168.3.101
  User nvidia
  StrictHostKeyChecking no
  UserKnownHostsFile /dev/null

保存后重启VS Code即可绕过密钥校验。


四、完整排错优先级总结(新手直接照做)

  1. 先执行ipconfig核对Windows网卡网段,和Jetson ifconfig IP对比,确保同网段;
  2. CMD手动ping、ssh测试连通性,确认网络无问题;
  3. 若ssh报密钥变更,执行ssh-keygen -R 目标IP清除旧指纹;
  4. 手动ssh登录一次设备,完成新指纹信任;
  5. 清理VS Code远程缓存,重启软件重连。

五、踩坑总结

  1. 网线直连≠同网段,静态IP设备必须手动对齐子网,这是嵌入式开发高频盲区;
  2. Jetson刷机/换系统后一定会触发SSH主机密钥变更,属于SSH安全机制,不是设备故障;
  3. VS Code Remote-SSH依赖底层原生ssh连通,只要CMD手动ssh报错,VS Code必然连接失败,优先在终端排查基础ssh。

六、附加小技巧

Jetson本地开发可使用tmux后台运行程序,避免远程断开导致程序终止;若长期远程调试,推荐配置SSH密钥免密登录,省去重复输入密码。

相关推荐
银河麒麟操作系统2 小时前
闸机高效稳跑,通勤提速升级!银河麒麟赋能北京轨交新基建
运维·服务器·安全·交通物流
科技发布2 小时前
拓氪科技一站式品牌营销平台使用手册 舆情风险预警管理教程
人工智能·科技
六点_dn2 小时前
Linux学习笔记-printf命令
linux·运维·算法
明志数科2 小时前
人形机器人格斗场景下的技术挑战:动力学控制、感知融合与实时决策
网络·数据库
潜龙95272 小时前
AI时代下WebUI自动化实施架构图
人工智能·webui
蜡台2 小时前
Linux Python 安装使用
linux·运维·服务器
酉鬼女又兒2 小时前
零基础入门 DeepSeek V4 Pro API 开发:从环境搭建、消息格式规范到翻译函数实战、少样本提示、多轮对话聊天机器人与常见报错全流程详解指南
大数据·网络·数据库·人工智能·macos·机器人·github
城事漫游Molly2 小时前
科研数据可视化的5步AI工作流:从原始数据到发表级图表
人工智能·信息可视化·数据分析·prompt·ai for science·科研数据绘图·博士生必读
To_OC2 小时前
跑了个最简 RAG demo 后,我终于搞懂向量检索那堆分数到底啥意思
人工智能·llm·agent