日期: 2025-11-26
环境: Windows 10/11 (Local) + Ubuntu (Remote)
目的: 实现“Windows 编写/烧录 + Linux 编译”的混合开发流。
1. 环境准备
Linux 端 (被控端)
Linux 默认不开启 SSH 服务,需手动安装并启动。
Bash
# 更新源
sudo apt update
# 安装 OpenSSH 服务
sudo apt install openssh-server -y
# 启动服务并设置开机自启
sudo systemctl enable --now ssh
# 检查服务状态 (应为 active)
sudo systemctl status ssh
Windows 端 (控制端)
-
安装 VSCode 插件:在扩展商店搜索并安装
Remote - SSH。 -
检查 SSH 客户端:确保使用 Windows 原生 OpenSSH,而非 Anaconda 或 Git 自带的旧版本。
-
VSCode 设置 (
Ctrl+,) -> 搜索remote.SSH.path。 -
设置为:
C:\Windows\System32\OpenSSH\ssh.exe。
-
2. 连接配置
建立连接
-
点击 VSCode 左下角绿色图标
><。 -
选择
Connect to Host...。 -
输入目标格式:
user@ip(例如eric@192.168.8.54)。 -
首次连接需确认指纹 (Fingerprint) ->
Continue。 -
输入 Linux 用户密码。
优化:解决服务端下载慢的问题
国内网络环境下,VSCode 自动在 Linux 端下载 Server 可能会超时。
-
现象:一直显示
Downloading VS Code Server...,进度条不动。 -
解决方案:强制使用 Windows 端下载。
-
VSCode 设置 -> 搜索
Local Server Download。 -
修改为
always。
-
3. 开发环境配置
插件安装机制
VSCode 的插件分为两类,连接 SSH 后需注意区分:
-
Local (本地):UI 主题、图标等。
-
SSH (远程):C/C++、Python、CMake、PlatformIO 等。
- 注意:必须在 SSH 连接状态下,在扩展栏点击
Install in SSH: ...,否则代码跳转和智能提示无法工作。
- 注意:必须在 SSH 连接状态下,在扩展栏点击
文件操作
-
打开项目:资源管理器 -> 打开文件夹 -> 输入 Linux 路径 (如
/home/eric/project)。 -
文件传输:直接拖拽文件至 VSCode 资源管理器即可上传;右键文件可下载。
4. 嵌入式混合开发工作流
针对 MCU (ESP32) 或 Linux (Rockchip) 开发的最佳实践。
方案 A:纯 SSH 流 (轻量级)
-
编译:在 VSCode 终端 (Terminal) 执行编译命令 (如
idf.py build)。 -
烧录:右键
build目录下的.bin文件 -> 下载到 Windows -> 使用本地工具烧录。 -
缺点:频繁手动下载繁琐。
方案 B:Samba 映射流 (推荐)
通过 SMB 协议将 Linux 目录挂载为 Windows 磁盘。
-
Linux 安装 Samba:
Bash
sudo apt install samba sudo smbpasswd -a <username> -
配置共享 (
/etc/samba/smb.conf):Ini, TOML
[Project] path = /home/eric/project writable = yes valid users = eric -
Windows 映射:
- 资源管理器 -> 映射网络驱动器 ->
\\<Linux_IP>\Project-> 设为 Z 盘。
- 资源管理器 -> 映射网络驱动器 ->
-
自动化烧录:
-
Linux 编译生成
.bin。 -
Windows 烧录工具直接读取
Z:\build\project.bin。
-
5. 常见问题 (Troubleshooting)
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
Connection refused |
Linux 未安装/启动 SSH 服务 | 见第 1 节,安装 openssh-server。 |
Permission denied |
密码错误或公钥未配置 | 检查密码;检查 .ssh/authorized_keys 权限。 |
spawn ... ENOENT |
找不到 SSH 客户端 | 检查 remote.SSH.path 路径是否正确。 |
| 终端乱码 | 缺少字体 | Windows 安装 Powerline 字体 (如 Meslo),并在 VSCode 设置中指定。 |
备注:
-
建议为 Linux 配置静态 IP,避免路由器重启后 IP 变更导致连接失败。
-
后期可配置 SSH Key 免密登录,进一步提高效率。
评论区