跳到主要内容
🔍
0.2.3已发布beginner · 约 1 课时 · P0

VS Code 远程开发

用 VS Code Remote-SSH 在 Windows 上直接开发 Linux 程序

  • 来源
  • 更新

标记说明:【来源】来自上传资料 · 【补充】课程新编 · 【纠错】按勘误表修正 · 【更新】过时内容已现代化 · 【待确认】无法可靠还原

本章含平台相关内容(platform_scope: distribution-specific

以下【平台示例】仅为演示载体,不构成本课程依赖;不同架构/SoC/板卡/发行版的区别见【平台差异】标注,换平台时请完成文末「迁移训练」。

完成标准(本章)

  • 📖 已阅读:滚动 ≥ 80% 且有效阅读 ≥ 90
  • ✏️ 已练习:小练习正确率 ≥ 60%
  • 📝 已通过测验:分数 ≥ 60
  • 🛠️ 已掌握还需完成实践任务
学习状态:未开始

0.2.3 VS Code 远程开发

本章来源:远程连接流程来自《Linux IO》PAGE 7-10【来源】;版本要求已【更新】(不锁 VS Code 1.83,见 err-7.2-1);插件说明与练习为新编【补充】。 平台适用性:distribution-specific(Windows 宿主 + Ubuntu 远端为示例;换云服务器/开发板只改 ssh 目标)。

① 学习目标

  1. 安装 Remote - SSH 插件并连接 Ubuntu;
  2. 说出 Remote-SSH 的工作模型(本地界面、远端执行);
  3. 在远程终端执行验证命令;
  4. 掌握"先手动 ssh 排查、再查插件"的分层排障顺序;
  5. 建立标准远程开发工作流(实践任务)。

② 前置知识

  • 必修:0.2.2(SSH 免密已就绪)。

③ 核心概念【来源+补充】

概念说明
Remote - SSH微软官方插件:本地渲染界面,远端运行 VS Code Server
VS Code Server通过 SSH 安装在远端的服务进程,负责文件/终端/编译
远端执行模型代码、编译、运行全在远端;本地无代码副本
验证命令uname -a(证明是远端 Linux)、pwd(证明是远端路径)
排障顺序手动 ssh 能通 → 插件问题;不通 → sshd/网络问题(回 0.2.2)

④ 通俗解释【补充】

把 VS Code 想象成"远程手术台":

  • 你坐在本地(Windows),面前是监视器与操作杆(VS Code 界面);
  • 真正动手的机械臂(VS Code Server)在手术室(Ubuntu)里;
  • 连接线就是 SSH 隧道——你看到的是远端摄像头的画面,操作全部作用在远端;
  • 所以代码没有"下载到本地"这一步:你编辑的就是远端文件,编译也在远端发生。好处是环境永远与真实 Linux 一致,不会出现"本地能跑、服务器报错"的差异。

⑤ 示例代码

代码示例与验证记录

  • examples/remote-ssh-steps.txtRemote-SSH 连接与验证步骤✓ 文档核对(非执行)· VS Code 当前稳定版 + Remote-SSH, 2026-08-15
    编译:按文件内顺序操作
    适用环境:LinuxWindows(MinGW)
    展开文档核对记录
    左下角显示 "SSH: 用户名@IP"
    远程终端执行 uname -a 显示 Linux
    

    差异说明:版本与插件使用当前稳定版;连接失败按 0.2.2 的 SSH 排查清单处理

    完整源码见 /code 代码示例页

⑥ 编译与运行方法

本章为连接与验证命令,无编译步骤;远程编译 C 程序见 0.2.4。

⑦ 常见错误

症状原因解决
连接超时手动 ssh 都不通回 0.2.2:sshd/网络/IP
手动能通、插件不通插件/Server 安装问题看输出日志;升级到当前稳定版
【纠错】换旧版 VS Code 并关自动更新历史规避手段用当前稳定版,见 err-7.2-1
找不到远端 gcc远端未装编译器远端执行 sudo apt install gcc

⑧ 小练习

小练习

学习自测:提交后才显示答案与解析(前端判分,不作为正式考试)
  • ex-0-2-3-1.VS Code 远程开发 Linux 需要安装的插件是?(单选)

    ◌ 未作答
  • ex-0-2-3-2.Remote-SSH 连接的实质是?(单选)

    ◌ 未作答
  • ex-0-2-3-3.判断:Remote-SSH 模式下,编译命令运行在远程 Linux 上,而不是 Windows 本地。(判断)

    ◌ 未作答

⑨ 章节测验

章节测验

5 题题库 · 随机抽 5 题 · 及格线 60 分 · 前端判分(学习自测)
开始测验 →

⑩ 实战任务

实践任务

建立远程开发工作流并留档

用 Remote-SSH 连接 Ubuntu,在远程打开一个目录、在远程终端执行两条验证命令, 把整个流程截图留档,形成"Windows 开发机 + Linux 执行环境"的标准工作流。

输入与输出

无程序输入输出。交付物:远程连接成功的截图(左下角 SSH 标识 + 远程终端 uname -a 输出)与步骤笔记。

功能要求

  • 安装 Remote - SSH 插件
  • 添加并连接 Ubuntu 主机
  • 远程打开一个目录(如 ~/learn)
  • 远程终端执行 uname -a 与 pwd 并记录输出

限制条件

  • 使用当前稳定版工具(不锁旧版本,见 err-7.2-10)
  • 连接失败时先按 0.2.2 排查手动 ssh,再检查插件

验收步骤(自检清单 0/3

验收标准

  • 三项验收步骤全部达成并留档

常见失败原因

  • 只装插件没装远端 sshd
  • 连接后没选 Linux 平台
  • 手动 ssh 都没通就直接折腾 VS Code

可选扩展

  • 在远端安装 C/C++ 插件,为 0.2.4 远程编译做准备
  • 配置 ssh config 别名(4.3.1 预告)

完成必要清单后才能计入"已完成实践"(学习状态自动推导,不提供一键完成)

⑪ 面试问题

面试问题

  • 你平时怎么在 Windows 上开发 Linux 程序?Linux 系统编程 · easy

    要点:VS Code + Remote-SSH 连 Linux 虚拟机/服务器,代码与编译都在远端。

    工作流:本地 VS Code 只做编辑器界面,Remote-SSH 在远端启动 VS Code Server, 终端、编译、调试全部在 Linux 上执行。好处:环境与生产一致、避免 Windows/Linux 差异问题 (换行、路径、权限)。补充:也可用 WSL2、独立虚拟机或云服务器做远端,流程相同。

    追问:
    • 追问:WSL2 和虚拟机选哪个?(体验与性能权衡,视需求)
    评分要点:
    • 说明远端执行模型
    • 提环境一致性
  • Remote-SSH 连不上,你的排查顺序是什么?Linux 系统编程 · medium

    要点:手动 ssh 能通?→ 查 sshd/网络;不通 → 查插件与 VS Code 配置。

    先隔离问题层次:①手动 `ssh 用户@IP` 是否成功——失败说明是 SSH/网络层(sshd 未启动、 IP 错误、防火墙),回 0.2.2 排查;②手动能通但插件不通——插件版本、远端平台选择、 VS Code Server 安装失败(可看输出日志);③都不行再升级 VS Code 与插件到当前稳定版。

    追问:
    • 追问:VS Code Server 装在远端哪里?(~/.vscode-server)
    评分要点:
    • 分层排查顺序
    • 先手动 ssh
  • 远程开发的代码和编译产物分别在哪里?Linux 系统编程 · easy

    要点:都在远端:代码在远端磁盘,编译与运行在远端执行,本地只有界面渲染。

    Remote-SSH 模型下本地不保存代码副本(编辑的是远端文件),编译产物也在远端。 因此远端机器需要有编译器(gcc)、磁盘与网络资源。要回传产物可用 scp/rsync, 或直接在远端 Git 提交后本地拉取——推荐后者(代码进版本库,机器只是环境)。

    追问:
    • 追问:怎么把远端文件拉回本地?(scp/rsync/git)
    评分要点:
    • 代码与产物在远端
    • 回传方案

⑫ 延伸阅读

  • VS Code 官方文档:Remote Development using SSH;
  • OpenSSH 手册:man ssh(客户端选项);
  • 下一章预告:0.2.4 第一个程序:Hello World 全流程——用刚搭好的环境跑起第一个 C 程序。

迁移训练(migration training)

把远程目标换成 云服务器 / 开发板 / WSL2: 不变的:Remote-SSH 流程、远端执行模型、验证命令; 要改的:ssh 目标地址(Host/IP/端口)、远端平台选择、开发板需先启动 sshd(阶段 7 讲)。

内容来源映射

内容部分资料位置标记说明
VS Code 远程连接 Ubuntu 的操作流程Linux IO(1)PAGE 7-10来源正文重新组织表述
版本要求Linux IO(1)PAGE 7-8更新原文锁 VS Code 1.83 并关闭自动更新;已更新为当前稳定版(与 err-7.2-10 同源)
Remote-SSH 插件说明、故障排查、练习/测验/任务补充全部新编

本章勘误与更新记录(【纠错】/【更新】)

  • err-7.2-1 · 过时更新 · 出处 PAGE 7-8

    原文:连接不上就换 VS Code 1.83 并取消自动更新

    正确:使用最新稳定版 VS Code + Remote-SSH 插件即可;连接问题先排查 sshd 状态、网络连通与插件版本,再按官方文档升级。

    原因:锁旧版本为历史规避手段;与 0.2.2 的 err-7.2-10 同源(本条目编号带 b 以满足勘误 id 全局唯一)。