资讯动态

SSH远程开发实战:Ubuntu配置密钥登录与VSCode Remote-SSH无缝连接

发布时间:2026/10/16 11:00:18 来源:尧图企业网站定制
1. 从一块“远程面板”说起为什么我最后选了 SSH 这条老路如果你手里同时有一台 Windows 笔记本和一台 Ubuntu 服务器或者一台装了 Ubuntu 的旧主机你最想要的事情大概和我一样人在客厅代码在书房不想来回搬机器更不想每次改个配置都要插显示器。我自己的场景更简单粗暴——一台跑 Ubuntu 的迷你主机放在角落里当开发环境日常主力机是 Windows周末偶尔抱着笔记本换个房间继续敲代码。折腾过各种远程方案之后最后老老实实回到 SSH不是因为别的而是因为它“看起来最不酷却最省心”。这篇内容我会围绕两个核心讲清楚一是 Ubuntu 上怎么把 SSH 服务端配好让 Windows、macOS 或者手机都能连进来二是 VSCode 的 Remote-SSH 插件怎么配置让你像操作本地目录一样操作远程 Ubuntu 项目。全程不碰图形化远程桌面因为对于写代码这件事来说命令行和编辑器才是主战场图形界面大部分时候是负担。适合谁看刚接触 Linux 的小白以及想从“FTP 传文件 记事本写代码”过渡到“远程开发一体”的老手。如果你之前只用过宝塔面板或者 Web 终端这篇会帮你把底层逻辑捋清楚。不需要你有很强的网络基础但最好知道 IP 地址是什么以及能在 Ubuntu 上打开终端。先说一个我在实际使用中的感受SSH 这套东西配置一次之后基本上就是长期收益。前期花 10 分钟把密钥和配置搞定后面每次打开 VSCode 都是秒连比任何“远程桌面 IDE 远程开发”的组合都轻量。这也是我愿意花一篇长文把它彻底讲透的原因。2. SSH 到底在做什么把“远程登录”这件小事拆开看2.1 不是“远程桌面”而是“远程会话”很多人第一次接触远程控制脑子里全是 TeamViewer、向日葵那种画面——看到对方桌面用鼠标去点。但 SSH 完全不同它给你的不是一个屏幕而是一个“终端会话”。你在自己电脑上敲命令命令通过网络传到 Ubuntu 上执行执行结果再传回来显示。有点像我隔着电话让朋友帮我操作他的电脑我看不到他的屏幕但我说一步他做一步结果我听得清清楚楚。这种方式的优点极其突出网络带宽占用极小哪怕只有几十 KB 每秒的网速SSH 依然流畅得像本地终端不需要在 Ubuntu 上维持一个完整桌面环境省下大量内存和 CPU而且天然支持多用户同时登录每个人有自己的会话互不干扰。缺点当然也有没法直接看到图形界面程序比如你想远程打开一个浏览器窗口SSH 帮不了你。但对于开发者来说这不算损失因为我们的工作流里浏览器调试、图形界面操作这些任务完全可以靠“本地浏览器 远程服务”来解决。2.2 SSH 的组成客户端、服务端、协议和端口先把几个名词弄清楚后面配置的时候你就不会懵。概念角色类比SSH 客户端发起连接的一方比如 Windows 上的终端、VSCode打电话的人SSH 服务端接受连接的一方跑在 Ubuntu 上的 sshd 服务接电话的人SSH 协议双方通信的规则加密、认证、传输都由它管通话使用的语言端口服务端监听的网络入口默认是 22电话分机号Ubuntu 上要做的就是把“接电话的人”请出来让他 24 小时守在端口 22 上。而 Windows 这边只需要一个“打电话的工具”——Windows 10/11 自带的 OpenSSH 客户端就够了VSCode 的 Remote-SSH 插件本质上也只是帮你自动调用这个工具。2.3 为什么密码登录“能用但不推荐”刚把 SSH 装好的时候系统默认允许用账号密码登录。这对内网环境来说很方便因为不需要额外配置任何东西只要知道 Ubuntu 的用户名和密码就能连。但我在实际使用中强烈建议你尽快切换到密钥登录理由很实在密码太容易被暴力破解。Ubuntu 上跑着的 sshd 如果暴露在公网你去看/var/log/auth.log就知道每天都有大量自动化脚本尝试不同用户名和密码组合。密码是“知道就能用”的东西一旦泄露就是灾难。而密钥登录需要“持有私钥文件”才能连相当于一把物理钥匙比密码安全得多。密钥可以设置密码短语passphrase就算私钥文件被别人拿到没有短语也照样用不了。下面我会把从“密码登录”到“密钥登录”的完整路径走一遍这也是我在多台机器上重复多次后总结出的最稳流程。3. Ubuntu 端配置让 SSH 服务跑起来并加固它3.1 安装并启动 OpenSSH ServerUbuntu 默认不会安装 SSH 服务端但安装过程很简单。打开终端先更新软件源再安装sudo apt update sudo apt install -y openssh-server安装完成后SSH 服务会自动启动。你可以用下面这条命令确认状态sudo systemctl status ssh如果输出里有active (running)说明服务已经在跑了。如果没有自动启动手动执行sudo systemctl enable --now ssh这里有个细节enable是设置开机自启--now是立刻启动两者组合起来一步到位。在 Ubuntu 上服务的名字是ssh而不是sshd新手经常在这卡住systemctl status sshd会提示找不到服务是正常的。验证服务是否真的可以连可以在本机测试一下ssh localhost如果提示输入密码并成功登录说明服务端没问题。这一步很重要它把“服务端故障”和“网络故障”两个变量分开了后面连不上时能更快定位问题。3.2 查看 IP 地址找到 Ubuntu 在网络里的门牌号服务端跑起来了总得知道怎么找它。在 Ubuntu 终端执行ip addr show找到类似192.168.1.100的地址这就是 Ubuntu 在局域网内的 IP。注意看网卡名称有线网卡一般是eth0或enp3s0无线网卡是wlan0。如果你用的是虚拟机地址通常是10.0.2.15这类 NAT 网段和实机有区别但不影响 SSH 连接。还有一个更直观的命令hostname -I会直接列出所有 IP不用费劲在ip addr的输出里翻。记下这个 IP后面 Windows 和 VSCode 连接时都要用到。提醒如果 Ubuntu 的 IP 是 DHCP 动态分配的重启路由器或者 Ubuntu 后 IP 可能变。想要固定不变可以在路由器后台绑定 MAC 地址和 IP或者在 Ubuntu 上用 Netplan 配置静态 IP。后者涉及系统网络配置改动前最好备份/etc/netplan/*.yaml文件。3.3 防火墙和端口让外部设备真的能连进来Ubuntu 自带ufw防火墙如果开启了默认会拒绝外部连接。所以即使 sshd 在运行Windows 还是连不上。处理方式很简单sudo ufw allow 22/tcp sudo ufw enable或者如果你不想启用防火墙但又想确认 22 端口是否被监听sudo ss -tlnp | grep 22看到LISTEN状态说明 sshd 正在监听。这里我要特别强调一个容易踩的坑如果你是在云服务器上操作光在系统里放行端口还不够还要去云平台的安全组规则里放行 22。云平台的安全组相当于机房门口的保安系统防火墙相当于办公室的门禁两道关卡缺一不可。对于家庭局域网使用以上配置已经足够了。但如果你的 Ubuntu 暴露在公网强烈建议继续做接下来的加固操作。3.4 密钥登录配置彻底和密码说再见密钥登录的原理可以这样理解生成一对“钥匙”一把是公钥放在 Ubuntu 上相当于锁一把是私钥留在你自己的电脑上相当于钥匙。连接时Ubuntu 用公钥加密一个随机数发给客户端客户端用私钥解开再传回来能解开就证明“你持有那把唯一的钥匙”。在 Windows 上打开 PowerShell 或者终端执行ssh-keygen -t ed25519 -C your_emailexample.com这里推荐用ed25519算法它比传统的rsa更短、更快、安全性也足够。执行过程中会问你保存位置和密码短语直接回车使用默认位置即可。密码短语可以留空但如果你追求安全建议设置一个。生成完成后你会得到两个文件C:\Users\你的用户名\.ssh\id_ed25519—— 私钥永远不要发给任何人C:\Users\你的用户名\.ssh\id_ed25519.pub—— 公钥可以随意分发接下来把公钥传到 Ubuntu 上。最简单的方法是type C:\Users\你的用户名\.ssh\id_ed25519.pub | ssh 用户名Ubuntu_IP mkdir -p ~/.ssh cat ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys这条命令有点长我拆开解释一下type读取本地公钥文件内容通过管道传给ssh在远程执行后面的命令远程命令先创建~/.ssh目录再把公钥追加到authorized_keys最后设置正确的权限700表示只有自己能访问目录600表示只有自己能读写文件权限这一步至关重要。如果authorized_keys权限太宽松sshd 会拒绝使用它你会看到Permissions 0644 for authorized_keys are too open的报错然后依然只能密码登录。传完后测试ssh 用户名Ubuntu_IP如果不需要输入密码就登录成功说明密钥生效了。现在可以进一步修改 SSH 配置禁用密码登录sudo nano /etc/ssh/sshd_config找到这几行并修改PasswordAuthentication no PubkeyAuthentication yes改完重启服务sudo systemctl restart ssh之后再用任何密码登录都会被拒绝只有持有私钥的设备才能连接。这里有个建议不要急着禁用密码登录先确保密钥登录 100% 可用再关密码。我就是吃过这个亏在云服务器上改完配置发现本地私钥丢了差点把机器锁在门外。4. VSCode 远程开发让编辑器长在 Ubuntu 上4.1 为什么 Remote-SSH 比 SFTP 插件体验好得多先说结论如果你要在远程机器上改代码、跑调试、看日志Remote-SSH 是目前体验最接近“本地开发”的方案。它做的事情不是“把文件下载到本地改完再传回去”而是直接在远程机器上启动一个 VSCode Server本地 VSCode 只是一个“遥控器”。这意味着文件保存在 Ubuntu 上不占 Windows 磁盘空间终端、调试器、代码补全都在远程执行使用的 Ubuntu 的 CPU 和内存多个设备可以同时连接同一个远程环境无缝切换安装的扩展装在远程侧本地 VSCode 保持轻量对比传统 SFTP 插件它的优势是质的飞跃。SFTP 方案本质是“编辑本地副本手动同步”经常出现文件冲突、同步遗漏、终端环境不一致等问题。Remote-SSH 直接帮你省掉了同步这一步我身边好几个从 SFTP 转过来的朋友都表示“回不去了”。4.2 安装 Remote-SSH 插件并配置连接在 VSCode 扩展市场搜索Remote - SSH作者是微软直接安装。装完后左侧会出现一个远程资源管理器图标也可以通过命令面板CtrlShiftP输入Remote-SSH: Connect to Host来使用。最推荐的方式是编辑 SSH 配置文件这样每个远程主机的信息都能保存下来不用每次手动输 IP。在 VSCode 里按 F1输入Remote-SSH: Open SSH Configuration File选择用户级别的config文件路径一般为C:\Users\你的用户名\.ssh\config。然后填入这样的配置Host ubuntu-dev HostName 192.168.1.100 User yourname Port 22 IdentityFile C:\Users\你的用户名\.ssh\id_ed25519字段解释Host是这个连接的别名随意起方便记忆HostName是 Ubuntu 的真实 IP 或域名User是 Ubuntu 上的登录用户名Port默认 22如果改过端口就填入实际值IdentityFile指定私钥文件位置指向本地的id_ed25519保存后在 VSCode 远程资源管理器里就能看到ubuntu-dev这个主机点击连接即可。第一次连接时VSCode 会在 Ubuntu 上自动下载并启动 Server这个过程取决于网络一般几十秒到几分钟不等。连接成功后左下角状态栏会显示SSH: ubuntu-dev左下角绿色标志变成远程模式。4.3 扩展的安装位置本地和远程的“两套系统”用 Remote-SSH 连着远程时VSCode 的扩展分为两类本地扩展和远程扩展。比如ESLint、Python、Prettier这类和代码分析、格式化相关的扩展必须装在远程而Remote-SSH插件本身、本地主题、快捷键绑定相关扩展装在本地即可。在扩展面板里如果当前是远程连接状态已安装的扩展会有“本地”和“SSH: ubuntu-dev”两个分类。你可以手动把某个扩展安装到远程也可以右键选择“安装到远程”。有个常见错误是扩展装本地了远程端的代码补全完全不生效就是因为 Python 解释器和 LSP 服务都跑在远程本地扩展根本碰不到。实际经验Python 远程开发时建议在 Ubuntu 上装好 Python 扩展后再用命令面板执行Python: Select Interpreter选择远程环境里的 Python 路径。如果不做这一步VSCode 有时会误用系统默认 Python 导致依赖导入失败。4.4 免密连接的最终目标从双击到进入编辑只需要 5 秒配置到这一步你已经可以免密连接了。但如果追求极致效率还有一个技巧在 Windows 上配置 SSH Agent 服务让私钥常驻内存。这样每次连接不会询问密码短语也不用反复确认密钥位置。在 PowerShell管理员模式执行Get-Service ssh-agent | Set-Service -StartupType Automatic Start-Service ssh-agent ssh-add C:\Users\你的用户名\.ssh\id_ed25519ssh-add会把私钥加载到 agent之后 VSCode 连接时SSH 客户端会自动从 agent 获取密钥整个过程完全无感。配合 VSCode 的窗口记忆功能你甚至可以做到工作日早上打开 VSCode直接点历史远程记录进入上次的远程项目5 秒内开始写代码。5. 实操过程全记录从零到 VSCode 连上 Ubuntu 的完整链路5.1 我实际操作的完整命令序列为了让你有更直观的参考我按照“在一台新装的 Ubuntu 24.04 上从零配置”的顺序把完整的命令串一遍。你完全可以照抄只要把其中的用户名和 IP 替换成你自己的。Ubuntu 端# 1. 更新软件源并安装 ssh 服务 sudo apt update sudo apt install -y openssh-server # 2. 确认服务运行 sudo systemctl status ssh # 3. 如果没运行启动并设置自启 sudo systemctl enable --now ssh # 4. 查看 IP hostname -I # 5. 防火墙放行 sudo ufw allow 22/tcp sudo ufw enable # 6. 验证本机登录 ssh localhostWindows 端PowerShell# 1. 生成密钥使用 ed25519 算法 ssh-keygen -t ed25519 -C your_emailexample.com # 2. 查看公钥内容 cat C:\Users\你的用户名\.ssh\id_ed25519.pub # 3. 公钥复制到 UbuntuWindows 的 type 命令 type C:\Users\你的用户名\.ssh\id_ed25519.pub | ssh 用户Ubuntu_IP mkdir -p ~/.ssh cat ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys # 4. 测试免密登录 ssh 用户Ubuntu_IP到这里SSH 层面已经完成了。接下来在 VSCode 里安装 Remote-SSH 扩展F1 → Remote-SSH: Open SSH Configuration File → 编辑 config输入上面的别名、地址、用户名、私钥路径点击连接等待远程 Server 初始化打开远程目录File → Open Folder → 输入/home/用户名/project5.2 关键参数选择为什么是 ed25519 而不是 RSAed25519是当前 SSH 密钥算法的更优选择。传统 RSA 密钥动辄 2048 位甚至 3072 位而ed25519只用了 256 位长度却能达到相当的安全强度。它的签名算法速度更快密钥格式也更简洁。绝大多数现代系统都支持它包括 Ubuntu 22.04 之后的版本和 Windows 自带的 OpenSSH。如果你遇到非常老的系统可能只支持 RSA这时可以生成兼容密钥ssh-keygen -t rsa -b 4096 -C your_emailexample.com我在一台老设备上碰到过no matching host key type的报错就是因为服务端只认 RSA。这种情况可以在config文件里为特定主机追加一行HostKeyAlgorithms ssh-rsa PubkeyAcceptedAlgorithms ssh-rsa但这是最后手段能用新算法尽量用新的。5.3 连接成功的标志怎么判断整个链路已经打通当你执行 VSCode 连接后新的窗口底部终端会自动打开一个远程终端会话提示符会变成userubuntu-dev:~$这种形式。终端当前目录就是你在远端打开的目录此时你敲的每一条命令实际都在 Ubuntu 上执行。验证方法很简单whoami # 输出 Ubuntu 上的用户名 pwd # 输出 Ubuntu 上的目录路径 hostname # 输出 Ubuntu 的主机名如果这些输出和 Windows 本地终端完全不同恭喜链路已经打通。现在你可以在左边资源管理器里看到 Ubuntu 上的文件树新建文件、修改文件、保存全部实时保存在远程。5.4 端口转发和文件下载SSH 隧道还能这样用配置好 SSH 后你其实多了一条加密隧道除了终端还能用于端口转发。这个场景我在实际中经常用到Ubuntu 上用 Jupyter Notebook 或者某个 Web 服务监听在 8888 端口但 Ubuntu 没有显示器我直接在 Windows 浏览器里访问。方法是在 VSCode 的远程终端或者 Windows 终端执行ssh -L 8888:localhost:8888 用户Ubuntu_IP意思是把 Ubuntu 的 8888 端口映射到 Windows 本地的 8888 端口。之后浏览器打开http://localhost:8888相当于访问 Ubuntu 上的服务。在 VSCode 里更简单远程连接状态下左下角“端口”面板可以直接添加转发端口图形化操作免去手动输入命令。这个功能让我彻底放弃了传统 SFTP 下载方案——想拷贝文件到本地VSCode 直接拖拽下载或者在远程终端用scp命令都比旧的 FTP 流程可靠得多scp 用户Ubuntu_IP:/home/用户名/result.txt D:\downloads\6. 常见问题与排查技巧实录6.1 连不上超时、拒绝、无提示三种故障方向我把踩过的坑和大家的常见问题汇总成表格按症状、原因、解决方式来呈现。症状常见原因排查与解决Connection timed out防火墙拦截、IP 不对、服务未启动ping 一下 Ubuntu 的 IP能通再看 22 端口用 sudo ss -tlnpConnection refusedsshd 没启动或端口被改检查systemctl status ssh如果改了端口连接时加-p 端口号Permission denied (publickey,password)密码错、密钥没配对、authorized_keys 权限不对确认用户名确认公钥在authorized_keys里确认权限是 600REMOTE HOST IDENTIFICATION HAS CHANGEDUbuntu 重装过或 IP 被重新分配给别的机器执行ssh-keygen -R Ubuntu_IP清除旧指纹再重新连接server unexpectedly closed network connectionsshd 配置有误服务启动失败查看日志 sudo journalctl -u ssh第一种超时最折磨人。我的排查顺序是先 ping再测端口后看服务最后查防火墙。用telnet IP 22测端口如果连接成功会出现 SSH 版本号字符串说明端口通了。Windows 自带 telnet 可能没启用可以用 PowerShell 的Test-NetConnectionTest-NetConnection 192.168.1.100 -Port 22输出里TcpTestSucceeded : True就代表通。6.2 VSCode 连接慢卡在“Setting up SSH Host”第一次连接时VSCode 需要在 Ubuntu 上下载并安装 vscode-server。这一步在国内网络环境下经常很慢甚至卡住不动。解决思路有两个。一个是让 VSCode 使用国内镜像源。在 Ubuntu 的~/.bashrc或~/.profile中设置环境变量export VSCODE_SERVER_PLATFORMlinux-x64 export VSCODE_SERVER_CDNhttps://update.code.visualstudio.com但这只是调整了下载来源不能完全保证速度。更实用的办法是先手动在 Ubuntu 上把 vscode-server 解压好。到微软官网获取对应版本的 server tar.gz 地址直接在 Ubuntu 上wget下载速度通常会比 VSCode 的自动下载快。不过手动处理比较繁琐我后来放弃折腾直接用较新的 VSCode 版本配合网络环境稍好的时段连接成功率会高一些。还有一个容易忽略的问题如果本地 SSH 配置里指定了错误的IdentityFileVSCode 验证密钥会反复尝试导致连接流程拖慢。检查config文件里的路径是否正确、文件是否存在别写错反斜杠和文件名。6.3 远程终端里的中文乱码和命令行颜色丢失连上远程后发现终端里 ls 命令的输出没有颜色中文文件名显示为?或乱码基本是两种原因。颜色丢失Ubuntu 上默认 shell 可能是 bash 或 zsh如果没有启用颜色增强加上 SSH 非交互式登录时可能没加载颜色配置。在~/.bashrc里确认有这两行export TERMxterm-256color alias lsls --colorauto改完重新登录。乱码问题更常见是 locale 没有配置。执行sudo apt install -y language-pack-zh-hans sudo update-locale LANGzh_CN.UTF-8然后退出 SSH 重新登录。这个操作只会影响终端显示不会改变系统软件的行为很安全。如果在 VSCode 远程里依然乱码可以在设置里搜索terminal.integrated.encoding把它设置为utf-8如果你的终端仍是 GBK那就另说但 Ubuntu 默认就是 UTF-8问题通常不在这一侧。6.4 公钥明明加了却还是要密码这个问题的出现频率极高绝大多数情况下是两个原因。第一个是authorized_keys文件权限不对。sshd 严格要求它是600或400目录~/.ssh是700。如果改了权限依然不行还有一种可能Ubuntu 上用户的家目录本身权限是755一般情况下没问题但有个别版本对家目录权限检查很严格可以试着改为700chmod 700 ~第二个是用了sudo把公钥写到了 root 用户目录而不是普通用户目录。比如用sudo执行重定向命令文件就会跑到/root/.ssh/authorized_keys而不是/home/用户名/.ssh/authorized_keys。检查一下文件位置如果错了把它移到正确目录并修改属主sudo mv /root/.ssh/authorized_keys /home/用户名/.ssh/ sudo chown 用户名:用户名 /home/用户名/.ssh/authorized_keys我的建议是所有命令尽量不要加 sudo 操作密钥文件直接用普通用户执行上面的 mkdir cat 命令即可。6.5 改 SSH 配置后服务重启失败修改sshd_config后sudo systemctl restart ssh如果提示失败最简单的检查是sudo sshd -t-t参数只检查配置文件的语法不会真的启动服务。如果有错误它会明确告诉你第几行有问题比如Missing privilege separation directory或者unexpected symbol。改完语法错误再重启。千万别在生产环境里凭感觉改配置一定要先做语法检查。我自己的流程是改配置前先备份sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak然后修改接着sudo sshd -t验证最后再systemctl restart ssh。这个习惯帮我避免过好几次锁死风险。7. 进阶技巧一台 Ubuntu 同时服务多台设备7.1 多用户多设备共用一个远程服务器SSH 天然支持多用户所以家庭或者小团队可以共用一台 Ubuntu 作为开发服务器。每个人在 Ubuntu 上有自己的用户名和目录通过 VSCode Remote-SSH 各连各的互不干扰。你要做的只是在 Ubuntu 上创建用户sudo adduser zhangsan让 Zhansan 的 Windows 机器生成自己的密钥把公钥加到他的authorized_keys在 VSCode 里配置他自己的config文件这里有个好处每个人用自己的身份登录权限自然隔离不会误删别人的项目。如果希望团队共享某些目录可以用 Linux 的文件组权限来管理而不是共享同一个账号。共用同一账号是灾难出了问题根本分不清是谁干的。7.2 内网穿透之外的替代思路Tailscale 或局域网优先如果你不只是在家里局域网内连接而是想在公司、咖啡厅连回家里 Ubuntu就会遇到 NAT 穿透问题。这个话题展开可以写一整篇文章我只简单给一个方向。第一步永远是优先用局域网。同一个路由器下SSH 速度和稳定性都非常好。跨网络时我的经验是先用 Tailscale 这类组网工具把 Ubuntu 和 Windows 放在同一个虚拟局域网里然后用法和局域网基本一致只是 IP 换成了虚拟网卡分配的 100.x 地址。配置 VSCode 的时候HostName直接填 Tailscale 分配的 IP 即可。我就不展开具体配置了但建议有跨网络需求的读者从这里入手比公网端口转发简单太多而且安全性更好。暴露真实公网端口需要对 SSH 做大量加固新手很容易留下安全隐患。7.3 编写一个简单的连接脚本简化重复操作如果说每个连接都要打开 VSCode 再点选远程主机你还是觉得不够快可以在 Windows 上写一个批处理脚本connect-dev.batecho off code --remote ssh-remoteubuntu-dev D:\proxy\some-project其中ubuntu-dev是config里的主机别名。执行脚本后VSCode 会直接用远程模式打开指定目录。如果你用 VSCode 的code命令要确保已将它加入系统 PATH安装时默认会做到这一点。想打开某个远程特定路径把后面的目录换成 Ubuntu 上的实际路径code --remote ssh-remoteubuntu-dev /home/用户名/projects/demo这个脚本我用了很久尤其在早上开工时双击一下就能直接进到昨天的代码现场。8. 写在最后我觉得这套方案最值的地方折腾这套配置之后的半年里我最大的感受不是“远程连接成功”那一刻的兴奋而是日常使用中的无感。打开 VSCode 就连上所有调试和终端都跑在 Ubuntu 上Windows 这边只负责渲染界面。这种“本地使用远程算力”的方式让一台配置普通的 Windows 笔记本也能流畅开发大型项目。最后再分享一个小技巧给 Ubuntu 设置一个永不休眠。许多迷你主机和旧笔记本默认会自动挂起一旦挂起SSH 就断了。关闭方法sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target这条命令会把所有休眠目标屏蔽掉让机器一直在线。如果你用的是台式机或者 Mini PC这招很有效如果是笔记本要考虑散热和耗电建议配合 BIOS 里的电源策略一起看。配置 SSH 和 VSCode Remote-SSH本质上是在建立一套稳定的个人开发基础设施。第一次折腾可能会花点时间但长期收益非常可观。我见过不少朋友卡在“密钥登录”或者“VSCode 连不上”就放弃了回到传文件改代码的原始流程很可惜。按照这篇的顺序走一遍大部分坑都能避开剩下的小问题也基本能找到排查方向。如果还有更特殊的情况欢迎带着你的具体报错信息去问搜索引擎抱着“看日志、分链路、逐一排除”的思路问题总会浮出水面。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑