☰
VS Code Remote-SSH 连接树莓派:远程开发环境搭建与优化指南
2026/10/2 5:26:19 网站建设 项目流程

1. 为什么我建议用 VS Code + SSH 做树莓派开发

先说说我为什么折腾这套方案。树莓派这类小板子,性能终究有限,你让它跑个编辑器加一堆插件,内存和 CPU 很快就吃不消了。我之前试过直接在树莓派上装桌面版 VS Code,打开稍微大一点的项目文件,风扇就开始狂转,切个标签页都能明显感觉卡顿。更别提树莓派屏幕就那么点大,来回切换代码和终端窗口简直是折磨。

后来换成了 VS Code Remote-SSH 方案,体验直接上了一个档次。本地电脑上跑完整版 VS Code,树莓派只负责执行代码、编译程序、运行服务,所有编辑操作都在本地完成,延迟几乎感觉不到。代码保存在远程,终端也直接集成在编辑器底部,改完代码按个快捷键就能在同一个界面里运行 Python 脚本或者编译 C 程序,这种感觉就像在操作一台本地电脑一样自然。

这套方案具体能做什么?你可以躺在沙发上用笔记本连接客厅里的树莓派写代码;可以早上在公司电脑上连接家里的树莓派,继续昨天晚上没调完的程序;也可以在树莓派跑着某个服务的时候,随时用 VS Code 打开日志文件观察运行状态。对于经常玩树莓派的人,不管是做智能家居、图像识别、ROS 机器人还是毕设项目,这套远程开发环境基本是标配。

适合谁来参考?如果你手上有一颗树莓派 4B 或者更新的型号,系统已经装好或者正准备装,想找个高效的方式在它上面写代码,这篇文章的每一步都可以直接照做。就算你是第一次接触 SSH 和远程开发,按照下面的步骤走完一遍,也就花二十分钟左右,之后就能获得一个随时可用的远程开发环境。

整个方案的核心就三件事:让树莓派能被访问到、让 VS Code 能连上去、把连接体验调到顺滑。接下来我把每一步的细节和踩过的坑都展开讲。

2. 系统准备:从烧录到联网的细节

2.1 系统镜像烧录的两种方式

如果树莓派还没装系统,第一步自然是烧录系统镜像。常用的工具是树莓派官方出的 Raspberry Pi Imager,跨平台支持 Windows、macOS 和 Linux,界面也足够傻瓜化:选择板型、选择系统、选择 SD 卡,点烧录就行。但这里有几个容易忽略的选项,烧录前一定要设置好。

第一个是系统推荐选 64 位版本。树莓派 4B 及以后的型号,CPU 都支持 64 位指令集,装 64 位系统能跑更大的软件包,有些预编译的二进制工具也只在 arm64 架构下提供。官方 2023 年之后的 Raspberry Pi OS 默认就有 64 位镜像可选,直接选它就好。

第二个是烧录界面里的高级设置按钮。点击后可以预先配置主机名(默认是 raspberrypi)、开启 SSH、设置用户名和密码,还能直接配置 WiFi 网络。这些设置会被写进 SD 卡里,第一次开机就生效,避免了需要外接屏幕和键盘的麻烦。

如果用的是第三方工具,比如 balenaEtcher 之类的,那就只能用最原始的方式:先烧录系统,然后手动在 SD 卡的 boot 分区里创建 ssh 文件来开启 SSH,再创建 wpa_supplicant.conf 文件配置 WiFi。第一次开机时系统检测到这两个文件,会自动开启 SSH 并连接无线网络。这种方式在官方 Imager 出现之前是标准操作,现在仍然管用,只是稍微繁琐一点。

2.2 针对无屏幕用户的额外配置建议

如果树莓派完全没有接显示器,配置好网络之后还得知道它的 IP 地址才能连上。最简单的办法是登录路由器管理后台,在设备列表里找主机名是 raspberrypi 的条目,记下它的局域网 IP。这个方法最直观,但前提是你有路由器后台的访问权限。

没有路由器后台权限的话,可以下载一个局域网扫描工具。手机上有 Fing 之类的应用,PC 上有 Advanced IP Scanner,扫描一下局域网就能看到所有在线的设备,从中找到树莓派的 IP。这个方法有一点需要注意:如果路由器开了 AP 隔离功能,扫描结果可能不完整,这种情况下还是老老实实借个屏幕看一眼。

稳定性方面,我个人强烈建议给树莓派设置一个固定的局域网 IP,而不是依赖 DHCP 分配的动态地址。试想一下,树莓派重启之后 IP 变了,VS Code 里的连接配置就要跟着改,如果你在外面通过网络远程访问,IP 变了直接就断连了,体验非常糟糕。设置静态 IP 的方法有两种:一是在路由器后台给树莓派的 MAC 地址绑定固定 IP,这是最推荐的方式,因为所有网络配置仍然由路由器管理,不需要在树莓派上改任何文件;二是在树莓派系统里直接修改 DHCP 客户端的配置文件,让它每次启动都请求同一个 IP。第二种方法要小心别把 DNS 配置弄错,否则系统能联网但域名解析不了,反而更难排查。

2.3 系统源切换

树莓派装完系统、连上网络之后,默认使用的软件源服务器在国外,国内环境下执行 apt update 的速度会非常感人,几十 KB/s 的速度下载一个几 MB 的软件包都要等半天。建议第一时间切换成国内的镜像源,清华、阿里云、中科大的源都可以用,选择哪个取决于你所在的网络环境,实测下来清华源和阿里云源在大部分地区速度都不错。

切换源的方式很简单:编辑 /etc/apt/sources.list 文件,把默认的源地址替换成镜像站地址。如果你用的是 Raspberry Pi OS 2023 年之后的版本,系统里可能还会有 /etc/apt/sources.list.d/raspi.list 文件,这个文件对应树莓派基金会自己的软件仓库,也需要一并替换成镜像地址。替换完之后执行sudo apt update && sudo apt upgrade,速度应该会有质的提升。

这一步虽然不是连接 SSH 的直接前置步骤,但后续安装 Python 依赖、编译工具链、各类开发库时都要用到 apt 安装软件包,源的速度直接决定了等待时间,提前换好能省下不少功夫。

3. SSH 基础:先让树莓派能被连上

3.1 确认 SSH 服务正常运行

树莓派官方系统默认情况下是开启 SSH 服务的,但如果你用的是其他系统,比如 Ubuntu Server、Manjaro ARM 之类,可能默认没有安装或没有启动 SSH 服务。连接之前先确认一下服务状态,可以避免连不上的时候瞎猜。

在树莓派本机终端或者通过其他方式进入系统后,执行下面的命令检查:

sudo systemctl status ssh

如果服务在运行,输出里会显示 active (running) 的状态。如果显示 disable 或者 inactive,则需要先启动并设置开机自启:

sudo systemctl enable --now ssh

另外注意树莓派官方系统里 SSH 服务名可能是 ssh 而不是 sshd,跟 Ubuntu 桌面版不太一样,用 systemctl 操作时别搞混了。Ubuntu Server 系统里的服务名一般是 ssh,检查时如果报错说不存在该服务,可以试一下systemctl status sshd。

3.2 本地电脑生成密钥并拷贝到树莓派

SSH 连接支持密码登录和密钥登录两种方式。密码登录简单直接,但每次连接都要输密码,而且有些时候密码认证会被系统拒绝,比如权限配置不对或者密码策略限制。密钥登录是更推荐的方式,不仅省去输密码的麻烦,安全性也更高,因为私钥保存在本地,公钥放在远程主机上,不涉及密码在网络中传输。

如果你之前没有生成过 SSH 密钥,在本地电脑上执行下面的命令:

ssh-keygen -t ed25519 -C "your_email@example.com"

这里用了 ed25519 算法而不是传统的 RSA,原因是 ed25519 密钥更短、生成速度更快、安全性也不逊色。如果你的本地环境比较老,不支持 ed25519,也可以用ssh-keygen -t rsa -b 4096,只是生成的密钥文件会大一些。

生成过程中会提示设置 passphrase,这个密码短语是保护私钥文件的。如果设置了,每次使用私钥时还要输入一次 passphrase。日常个人开发图方便的话,直接留空也可以;但如果是生产环境或者公司机器,强烈建议设置,毕竟私钥泄露就等于把你的服务器访问权限交出去了。

密钥生成后,把公钥拷贝到树莓派上,推荐用 ssh-copy-id 命令:

ssh-copy-id pi@192.168.1.100

这里的 pi 是树莓派上的用户名,192.168.1.100 是树莓派的 IP 地址,换成你自己的实际值。执行后输入一次密码,本地公钥就会自动添加到树莓派 ~/.ssh/authorized_keys 文件里。之后再执行 SSH 连接,就不再需要输入密码了。

如果你的 Windows 系统没有 ssh-copy-id 命令,可以手动把公钥内容追加到树莓派的 authorized_keys 文件里。等后续 VS Code 连上远程之后,在远程终端的配置面板里操作同样可以实现。

3.3 SSH 连接测试

配置完成后,建议先在本地终端里测试一下连接是否正常:

ssh pi@192.168.1.100

能顺利进入树莓派的命令行界面,就说明 SSH 链路通了。这时候可以先顺手执行一下hostname和uname -a确认连接的是正确的设备。确认没问题之后输入exit退出,接下来就该 VS Code 出场了。

4. VS Code 远程开发配置实战

4.1 安装 Remote-SSH 扩展

VS Code 本身只是个编辑器骨架,远程开发能力靠扩展实现。在扩展市场搜索 Remote-SSH,安装微软官方发布的那一款,注意看清楚发布者是 Microsoft,别装到第三方同名扩展。安装完成后,VS Code 左侧边栏会多出一个远程资源管理器图标,看起来像一个小显示器。

Remote-SSH 这个扩展的本质是:在本地启动一个 VS Code 客户端进程,通过 SSH 连接到远程机器,然后在远程机器上动态安装一个 VS Code Server。这个 Server 负责文件读取、语言服务、代码补全、调试等核心功能,本地客户端只负责显示界面和接收键盘鼠标输入。所有计算密集型操作都在树莓派上完成,本地电脑只承担渲染任务,所以即使网络带宽一般,操作也能保持流畅。

4.2 配置 SSH 主机

点击远程资源管理器图标,选择 SSH Targets,再点击齿轮图标打开 SSH 配置文件。这个文件在本地电脑的 ~/.ssh/config 路径下,VS Code 会读取这个文件来识别可连接的主机。推荐在配置文件里写清楚主机别名和连接参数,示例配置如下:

Host raspberrypi HostName 192.168.1.100 User pi Port 22 IdentityFile ~/.ssh/id_ed25519
  • Host 后面的字符串是自己起的别名,可以随便取,方便记忆就行。
  • HostName 是树莓派的 IP 地址。
  • User 是登录用户名,树莓派官方系统默认是 pi,如果你创建了其他用户就写那个用户名。
  • Port 是 SSH 端口,默认 22,如果你改过 SSH 端口就填实际端口。
  • IdentityFile 指定私钥文件的路径,配置好之后连接时就不用手动指定密钥了。

配置保存后,远程资源管理器面板里应该就能看到名为 raspberrypi 的主机条目。点击旁边的连接按钮,VS Code 会启动连接流程。第一次连接时会自动在树莓派上下载并安装 VS Code Server,这个过程取决于树莓派的网络速度,可能需要等一两分钟。如果树莓派访问 GitHub 下载地址的速度太慢,可以参考后面的问题排查部分。

4.3 首次连接与目录打开

连接成功之后,VS Code 窗口底部会显示 SSH: raspberrypi 的提示,左下角的状态栏也会显示当前连接的主机名。这时候可以点击左侧的资源管理器图标,选择打开文件夹,浏览树莓派上的目录,选中你的项目文件夹后,VS Code 就会重新加载并打开远程目录下的文件。

这里有一个实用的建议:在 VS Code 里打开一个远程文件夹时,它会记住这个工作区。下次连接之后,直接通过菜单栏的 File 选项里找到 Recent 中对应的远程目录,一键就能重新打开,不用每次都手动浏览路径。

打开远程文件夹之后,你可以直接在编辑器里新建、修改、删除文件,所有操作实时同步到树莓派的文件系统中。终端面板(快捷键 Ctrl+`)打开后会自动进入远程环境的 shell,执行的命令直接在树莓派上运行,就跟坐在树莓派面前一样。装了 Python 插件后,打开 Python 文件就能看到代码补全和语法检查,解释器路径会自动识别远程环境里的 Python 版本。

4.4 远程扩展的管理逻辑

这里必须单独讲一下扩展管理的概念,很多人第一次用 Remote-SSH 都会在这里闹迷糊。VS Code 扩展分为本地扩展和远程扩展两种:本地扩展运行在你的电脑上,比如主题、图标、本地格式化工具这些;远程扩展运行在树莓派上,通常是与语言支持、调试、终端相关的功能。

Remote-SSH 的机制是:你在扩展面板里看得到所有已安装的扩展,但它们的运行位置不同。扩展卡片上会标注 LOCAL 或者 SSH: raspberrypi 这样的标识,表示这个扩展当前是运行在本地还是远程。当你点击安装一个扩展时,VS Code 会根据当前环境自动决定安装到哪一侧。比如 SSH 连接状态下,你安装 Python 插件,它会装到远程;如果安装主题插件,它会装到本地。这个机制初看有点绕,但理解之后就发现很合理:语言服务和调试器需要跟远程文件系统紧密配合,所以放在远程运行;界面美化类的东西跑在本地就够了。

如果你在远程工作区里打开一个扩展,提示“此扩展在此工作区中被禁用,因为其被定义为在远程扩展主机中运行”,这通常意味着该扩展不支持远程场景,或者版本太旧。解决办法是在扩展面板里确认当前安装的是最新版本,或者改用功能类似的替代品。

5. 从能用到好用的进阶配置

5.1 在 Windows 上使用密钥的额外配置

如果你用的是 Windows 系统,生成密钥和连接 SSH 的过程跟 macOS/Linux 略有不同。Windows 10 1803 之后的版本自带 OpenSSH 客户端,可以在 PowerShell 或 CMD 里直接运行 ssh 命令。之前讲的 ssh-keygen 和 ssh-copy-id 在 PowerShell 里也都可以使用,只是在没有 ssh-copy-id 命令的情况下,需要手动执行一些步骤。

手动拷贝公钥的方式是:先用记事本打开本地生成的 id_ed25519.pub 文件,复制全部内容;然后通过密码方式登录树莓派,编辑 ~/.ssh/authorized_keys 文件,把复制的内容追加到文件末尾,保存退出。注意要确保 ~/.ssh 目录权限是 700,authorized_keys 文件权限是 600,权限太宽松的话 SSH 服务会拒绝使用这个文件,导致密码都不让输直接拒绝连接。

Windows 上还有一个常见的问题是私钥文件权限不对。OpenSSH for Windows 对私钥文件的权限检查很严格,如果私钥文件允许其他用户读取,ssh 命令会直接报错。解决办法是在文件属性里修改安全选项卡,只保留当前用户的完全控制权限,删除其他用户或组的权限条目。这个坑非常隐蔽,很多人密钥配置完全正确,就是连不上,最后发现是文件权限的问题。

5.2 使用 VS Code 内置终端与端口转发

连接上远程主机后,VS Code 的内置终端非常实用。它默认打开的 shell 就是在树莓派上的,不需要再单独开一个 SSH 会话。比如你在编辑 Python 文件,直接按 Ctrl+打开终端,运行python3 main.py`,输出直接显示在终端面板里,省去了来回切换窗口的麻烦。

如果你在树莓派上跑了一个 Web 服务,比如 Flask 应用监听在 5000 端口,想在本地浏览器里访问,不用去查树莓派的 IP 再输入端口号,VS Code 提供了端口转发功能。在终端面板旁边的 Ports 选项卡里添加要转发的端口,VS Code 会自动建立一条隧道,本地访问 localhost:5000 就相当于访问树莓派的 5000 端口。这个功能在调试 Web 应用和 API 服务时特别方便,配置一次就能长期使用。

命令行的端口转发其实也可以手动完成,本地终端里执行:

ssh -L 5000:localhost:5000 pi@192.168.1.100

这样本地 5000 端口就会转发到远程的 5000 端口。VS Code 只不过把这一步图形化了,原理是完全一样的。

5.3 安装常用开发插件

远程连接建立之后,建议安装下面这些插件,开发体验会提升不少:

  • Python:提供代码补全、语法检查、调试、Jupyter 支持,是树莓派上做 Python 开发的必备插件。
  • Pylance:配合 Python 插件使用,补全和类型检查的体验更好。
  • C/C++:如果要在树莓派上编译 C/C++ 程序,这个插件提供智能提示、调试和编译任务配置。
  • GitLens:增强 Git 功能,查看每行代码的提交记录。
  • Remote Explorer:这是随 Remote-SSH 一起安装的辅助扩展,用于管理远程目标。
  • 你喜欢的主题和图标插件也可以安装,这些会运行在本地侧,不影响远程环境性能。

这些扩展在远程连接状态下安装后,会安装在树莓派上的 VS Code Server 里。好处是当你换一台电脑连接同一台树莓派时,远程扩展会自动同步,不需要重新安装;缺点是树莓派的存储空间有限,安装太多大体积扩展会占用珍贵的磁盘空间,所以只装常用的就好。安装完扩展后,重新加载一下窗口(命令面板输入 Reload Window)让扩展生效,然后远程环境的 VS Code Server 配置就会持续保留在树莓派上。

5.4 树莓派上一些值得做的优化

连接树莓派做开发,底下这些优化建议能让你用得舒服很多:

  • 把默认 shell 换掉:树莓派默认的 bash 能用,但如果你习惯用 zsh 加 oh-my-zsh,在树莓派上同样可以装。zsh 的自动补全和主题提示用起来确实比 bash 舒服一些。
  • 配置 git 用户信息:很多人在树莓派上做开发会忘记配置 git 的用户名和邮箱,提交代码时会报错或者提交了错误的作者信息。连接远程后第一时间执行git config --global user.name和git config --global user.email设置好。
  • 开启 swap:树莓派内存有限,跑编译任务或者大型 Python 程序时容易内存不足。默认系统已经配置了 swap,但大小只有 100MB 左右。编辑 /etc/dphys-swapfile 文件把 CONF_SWAPSIZE 调大到 1024 或者 2048,重启后生效。不过不是所有场景都需要,如果只是写点简单脚本,默认配置也够用。
  • 修改主机名:如果你有多台树莓派,建议给每台设置不同的主机名,方便区分。修改 /etc/hostname 文件内容,然后执行sudo hostname 新名字即可立即生效,下次连接时还可以在 SSH 配置里给不同主机起不同别名。

5.5 让树莓派保持在线的技巧

远程开发场景下,树莓派尽量保持一直在线是核心诉求。首先确保电源是稳定的 5V 3A 适配器,不要尝试用电脑的 USB 口供电,很多远程失联问题其实都是因为电压不稳导致树莓派重启或者断网。其次 WiFi 连接有时会断开,特别是在信号不太好的环境下。这时候可以设置 WiFi 自动重连,树莓派官方系统里可以通过编辑 /etc/wpa_supplicant/wpa_supplicant.conf 文件并配置适当的优先级,让系统在网络恢复后自动重新关联。

如果树莓派放在角落里不好物理重启,可以装一个远程重启的补充工具,比如在系统里配置定时任务检查网络连通性,发现 ping 不通网关就自动重启网络服务。这个脚本不需要很复杂,几行 bash 就能搞定,但关键时刻能救命。

6. 常见问题与排查技巧实录

远程开发这种组合方案,最大的障碍就是链路中的每一个环节都可能出问题,而且问题表现相似,排查起来容易让人头大。下面是我实际开发中遇到过的问题和排查思路,整理成一张速查表:

问题现象可能原因排查与解决方向
SSH 连接超时,一直转圈树莓派 IP 地址不对、网络上不可达、防火墙拦截先 ping 树莓派 IP,再检查 VS Code SSH 配置文件的地址
提示 Permission denied (publickey,password)密码错误、密钥不对、authorized_keys 权限问题确认用户名和密码没问题,检查本地私钥是否被正确匹配
connect to host 端口 22: Connection refused树莓派 SSH 服务未启动、端口被占用或禁用在树莓派本机运行 sudo systemctl status ssh 查看服务状态
连接成功后 VS Code 卡在下载 VS Code Server树莓派访问下载源太慢或网络受限手动下载安装,或者配置镜像源
扩展提示“在此工作区中被禁用”扩展不支持远程场景或版本过旧更新扩展版本,更换为支持远程的替代品
远程终端中文乱码系统字符集设置不对检查 LANG 环境变量,设置为 UTF-8,安装中文字体

6.1 VS Code Server 下载失败的解决办法

首次连接远程主机时,VS Code 会在远程机器上下载并启动一个配套的 Server 程序。这个下载源在 GitHub 上,国内网络环境下经常失败,报错信息大致是 Server installation failed 或者类似的字样。遇到这个问题有三个解决方法:

方法一是给树莓派配置代理,如果本地有代理服务的话。在 ~/.bashrc 或者 ~/.profile 里加 environment 配置,这种做法够直接但不够通用,因为你可能换网络环境。

方法二是手动下载。报错信息里通常会显示一个 commit ID,这个 ID 对应一个具体的 VS Code Server 版本包。在本地电脑上访问对应的下载地址,把 tar.gz 文件下载下来,通过 scp 命令传到树莓派上,再按照错误提示里的路径解压到指定目录。操作起来稍微麻烦,但一次性就能解决问题,后续版本更新后才需要再操作一次。

方法三是直接配置镜像加速,使用国内 npm 镜像源或者 GitHub 加速代理。具体操作是设置环境变量:

export VSCODE_SERVER_URL_OVERRIDE=https://你的加速地址

这个方法取决于加速服务的稳定性和速度,实际使用中需要根据情况调整。

6.2 WSL 或本地方案切换导致的配置冲突

有些朋友电脑上装了 WSL,同时也在用 Remote-SSH 连树莓派。这两个功能其实互不冲突,但 SSH 配置文件是共用的,如果 WSL 里有别名跟树莓派的别名相同,连接时可能会串台。建议给每个主机起独立的别名,比如 rpi4、rpi5、wsl-ubuntu 这样,别用一个通用的名称。

另外还有一种情况:如果本地 VS Code 曾经配置过 Remote-WSL 插件,你在连接 SSH 时可能会不小心点进 WSL 窗口。区分当前的连接对象很简单,看窗口左下角的提示标签,显示 WSL 就是连的本地子系统,显示 SSH: 主机名 就是远程连接。

6.3 SSH 连接频繁断开的排查思路

如果你发现 SSH 连接用着用着就断开了,过一会又自动恢复,先检查网络稳定性:树莓派使用 WiFi 连接时,信号弱或者信道干扰是常见的掉线原因。可以把树莓派优先用网线连接到路由器,排除无线信号问题。

软件层面还有一个常见原因:SSH 服务端配置了空闲超时或者客户端没有保持心跳。如果你在 VS Code 里开着远程连接,但一段时间没有任何操作,连接就断开了,多半是空闲超时设置太短。解决办法是在 SSH 配置文件的服务端加入 KeepAlive 设置:

在树莓派的 /etc/ssh/sshd_config 文件里添加或修改:

ClientAliveInterval 60 ClientAliveCountMax 3

这样服务端每隔 60 秒会发送一次心跳检查,连续 3 次没有响应才判定断开,一般就不会出现空闲断连的问题了。改完配置记得执行sudo systemctl restart ssh让配置生效。

6.4 树莓派 SSH 无法连接的系统级原因

排除了网络和配置问题之后,如果还是连不上,需要检查树莓派系统本身的状态。比如 SD 卡剩余空间不足会导致服务异常,可以远程或者接屏幕登录进去查看磁盘使用情况:

df -h

如果根分区使用量接近 100%,系统各种功能都会出问题。解决办法是清理 apt 缓存(sudo apt clean)、删除不需要的软件包(sudo apt autoremove)、清理临时文件和日志文件。如果是系统镜像分区太小导致的问题,可以重新烧录镜像并正确扩展分区,或者手动用sudo raspi-config里的扩展文件系统选项调整分区大小。

系统时钟异常也会导致 SSH 握手失败。树莓派没有 RTC 模块,断电后系统时间会重置。如果时间偏差过大,SSH 的密钥校验可能失败。确保系统配置了 NTP 时间同步:

timedatectl

查看时间同步状态,必要时执行sudo timedatectl set-ntp true开启自动同步。

7. 几个我个人离不开的实用技巧

连接环境的构建只是第一步,真正用得顺心靠的是日常积累的小技巧。这里分享几个我现在每台树莓派都会配置的操作。

第一个是 SSH 配置文件的参数优化。在本地 ~/.ssh/config 里,除了之前写的基础参数,还可以加一些别的选项:

Host raspberrypi HostName 192.168.1.100 User pi Port 22 IdentityFile ~/.ssh/id_ed25519 ServerAliveInterval 60 ServerAliveCountMax 3 Compression yes

ServerAliveInterval 是客户端每隔多少秒发送一次心跳包,ServerAliveCountMax 是连续多少次未收到响应才断开连接。这两个参数配合使用,能大幅提升连接稳定性。Compression yes 开启传输压缩,在网速一般的情况下拉取远程文件会有一些加速效果,代价是额外占用一点 CPU 资源。

第二个是直接把常用命令封装成本地脚本。比如我经常要做的一个操作是同步本地代码到树莓派上,虽然 VS Code 里保存文件就会自动同步,但有些情况下需要手动拉取远程分支或者用 rsync 做增量同步,这时候在本地写一个简短的部署脚本会快很多。

#!/bin/bash rsync -avz --delete ./my_project/ pi@192.168.1.100:~/my_project/

一次性同步整个目录树,避免逐个文件复制,非常实用。类似这样的场景可以发挥想象力,比如把本地编译产物同步过去、把树莓派的日志定期拉回本地等。

第三个是在树莓派上配置一个 tmux 会话。有时候你在 SSH 终端里跑一个长时间运行的训练任务或者数据采集程序,VS Code 关闭了连接之后,进程收到 SIGHUP 信号会直接终止。解决办法是用 tmux 或者 screen 这类终端复用器,把长时间任务放在 tmux 会话里执行,断开 SSH 连接后任务照样跑,下次连接之后用tmux attach就能回到之前的会话界面。这个技巧对树莓派开发尤其好用,因为树莓派通常被当成一个常开的小服务器使用。

第四个是善用 Remote-SSH 的命令面板。按 F1 打开命令面板,输入 Remote-SSH 可以看到所有相关命令。比如 Remote-SSH: Kill VS Code Server on Host,可以在远程 VS Code Server 异常时强制结束它,重新连接时会自动拉起一个新的。有时候远程环境卡住了,不一定要重启树莓派,先试试这个命令,省下的时间很可观。

还有一个值得养成的习惯:把 VS Code 的工作区保存文件放到远程目录里,比如在树莓派上创建 ~/workspace.code-workspace 文件,里面定义多个项目的根目录。这样每次连接后直接打开这个工作区文件,所有项目文件夹就都出现在资源管理器里了,不需要手动一个个添加。

从我个人的使用经验来说,这套方案最大的价值在于它抹平了“本地编辑”和“远程运行”之间的割裂感。以前在树莓派上开发,文件在本地编辑、代码在远程运行,来回同步文件就是个噩梦。现在整个流程完全集成在 VS Code 里,保存即同步,终端即运行,调试即反馈,开发效率至少提升了一倍。而且远程环境是跟随树莓派走的,不管你在哪里、不管用哪台电脑,只要能 SSH 连上,面对的就是完全一致的开发环境,这种一致性带来的安心感只有用过才知道。

如果你照着上面的步骤操作一遍,遇到任何卡住的地方,回过头看看对应的章节,大部分问题无非是密钥没配好、服务没启动、网络不通这几类,排查的方向找对了,问题也就解决了一大半。剩下的就是多用多踩坑,把这套工具链慢慢打磨成最适合自己习惯的开发环境。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询