2026 年把编程 Agent 装在笔记本上,最常见的失败不是模型不够聪明,而是笔记本合盖、磁盘混着私人文件、密钥进了 shell 历史。一台 Linux VPS 可以把「始终在线的执行环境」和「你手里的编辑器」拆开。这篇教程从注册服务商账号写到 VS Code 或 Cursor 远程改代码。验收标准不是 SSH 能连上,而是笔记本断开以后,tmux 里的 Agent 会话还在,并且你有一份改动前的快照。
为什么 AI 编程环境会从笔记本搬到 VPS
旧方式是本机装 CLI,Agent 直接改你的家目录。新方式是把工作目录、依赖缓存和长期会话放在一台只做开发的 VPS 上,笔记本只负责显示和按键。矛盾不在「云贵不贵」,而在执行边界。合盖会杀掉本机进程,系统更新会打断一次长任务,同一台机器上还有浏览器登录态和私人仓库。VPS 把这些从 Agent 的默认可写范围里拿掉。
它解决不了另一类问题。Linux VPS 没有 macOS,不能签名 iOS,也没有 Xcode。它也不是训练集群:调用云端模型的编程 Agent 吃的是内存、磁盘和稳定的会话,不是一块数据中心 GPU。如果你要的是本地推理而不是远程改仓库,先看 AI PC 选购指南,不要为了写代码去买显卡机器。
区域比套餐名更先决定体感。Remote SSH 的延迟发生在你和 VPS 之间,模型 API 的延迟发生在 VPS 和模型服务之间。人在东亚、机器在美东,按键会先慢下来,哪怕模型本身很快。选离座位近的区域,再谈核数。
先把 AI 编程环境拆成五层
按层买,不要按广告词买。跳板机、编码机、构建机、macOS 节点和 GPU 云回答的是不同的问题。把它们当成同一种「云主机」比较,就会用 2GB 的机器跑 Node,或者用 Linux 去编 iOS。
| 层级 | 它负责什么 | 不够时的症状 | 不该塞进来的东西 |
|---|---|---|---|
| 跳板 | 只维持 SSH | 一安装依赖就被系统杀掉 | Agent、数据库、容器 |
| 编码 VPS | git、语言运行时、一个 CLI Agent、tmux | 并行测试和容器开始抢内存 | Xcode、模型训练 |
| 构建机 | 更多核、更多内存、容器 | 交互式编辑变卡 | 日常浏览器登录态 |
| macOS 节点 | 签名、模拟器、Apple 工具链 | Linux 上永远缺少工具 | 把它当成通用 Linux 主机 |
| GPU 云 | 训练和大批量推理 | 改 bug 的间隙 GPU 空转 | 日常改仓库 |
编码层的实用地板是 4 个 vCPU、8GB 内存和大约 80GB 磁盘。1GB 或 2GB 只够做跳板。磁盘要留给 node_modules、语言缓存和若干份检出;根分区用过八成就先清缓存,再考虑加大,而不是等安装脚本报一个含糊的错误。
远程入口才是分水岭,不是模型
模型能力不是分水岭,执行边界落在哪台机器上才是。同一个人可以同时拥有 Cursor 和 Claude Code,如果一个改的是笔记本副本、另一个改的是 VPS 上的检出,你看到的 diff 就不是 Agent 以为自己改过的那份。
| 工具 | 入口 | 执行能力 | 上下文 | 适合人群 |
|---|---|---|---|---|
| VS Code Remote SSH | 本机编辑器连到 VPS | 终端、调试和扩展在远端跑 | 打开的是远端仓库 | 想留住熟悉编辑器的人 |
| Cursor Remote SSH | 同样走 SSH | 补全和 Agent 改的是远端文件 | 远端工作区 | 希望编辑和 Agent 看同一份检出 |
| Claude Code 或 Codex CLI | VPS 上的 tmux | 能改文件、跑测试 | 你显式打开的目录 | 笔记本合盖后仍要继续的长任务 |
| 远程 Mac | 远程 macOS | Xcode、签名、iOS 模拟器 | Apple 工程 | 工具链要求 macOS 的人 |
CLI 怎么选,不在这篇展开模型排名。入口、执行和上下文的差别可以看 Pi、Claude Code 与 Codex 的实测对比。这篇只要求你先选定一个 CLI,把它放进 tmux,并且让编辑器连的是同一台机器上的同一份检出。
按场景选机器,而不是按套餐名
| 如果你是 | 就选 | 不要选 |
|---|---|---|
| 只跟模型聊天,不改仓库 | 本机客户端 | 任何 VPS |
| 写 Web 或后端,希望合盖后测试还在跑 | 8GB 起的编码 VPS,加上 tmux | 1GB 跳板 |
| 要同时开容器和端到端测试 | 内存再加一档的构建机 | 和交互开发挤在 8GB 上 |
| 要编 iOS 或跑 Xcode | 租用一台远程 Mac | Linux VPS |
| 要训练权重 | GPU 云 | 这台编程 VPS |
| 团队要长期自动化,不只是你一个人远程写 | 云端 Mac 上的自动化 | 把流水线塞进个人 VPS |
个人编码 VPS 和个人笔记本的差别是会话和磁盘边界,不是「更智能」。团队流水线还要权限、日志和谁能登录。那是另一台机器的问题,不要在这篇的 dev 用户上顺手打开密码登录。
一套够用的推荐组合
系统用 Ubuntu 24.04 LTS。用户叫 dev,sudo 仍然要密码,Agent 不以 root 运行。SSH 只用 ed25519。密码登录要关,但必须在密钥登录已经成功、并且服务商网页控制台还开着的时候再关。运行时是 git、Python 3、Node 22 LTS 和 tmux。API 密钥放在 ~/.config/ai-dev/provider.env,目录 700,文件 600,并写进仓库的忽略列表。
编辑器侧用 VS Code 或 Cursor 的 Remote SSH,Host 名写在你自己电脑的 ~/.ssh/config,不要写在 VPS 上。长任务进一个固定名字的 tmux 会话,例如 agent。每次让 Agent 做大范围修改之前,先在服务商控制台做快照。
五个会让环境作废的误区
- 用跳板机的内存跑编码栈。 Node 装到一半进程被杀掉,看起来像网络故障,其实是内存。
- 密钥还没验证就关掉密码登录。 正确顺序是:新开一个密钥会话成功,旧的控制台窗口先留着,然后再改 sshd。
- 把 API 密钥写进命令行。 它会进 shell 历史,也会被 Agent 读到。密钥只从 600 的文件进入会话。
- 给 dev 配免密码 sudo。 Agent 能跑命令。免密码 sudo 意味着一次误操作就能改 sshd 或防火墙。sudo 保留密码。
- 把 iOS 工程克隆到 Linux 上再找 xcodebuild。 工具不会出现。这类工程从一开始就放在 远程 Mac。
从注册到远程开发的七步
每一步都有一个可以观察的结果。上一步没有结果,不要开始下一步。
- 注册。 打开服务商账号的两步验证,选离你近的区域,记下公网 IP。账单邮箱和恢复码放在你自己的密码管理器里,不放在这台即将交给 Agent 的机器上。
- 密钥。 在自己的电脑上生成 ed25519,只把
.pub贴进服务商。私钥留在本机。 - 用户。 创建 dev 并加入 sudo。用密钥以 dev 登录成功后,再关闭 root 登录和密码登录。改 sshd 之前,保持一个已经登录的控制台窗口。
- 运行时。 安装 git、编译工具、Python、tmux,以及 Node 22 LTS。用版本命令验收,不用「安装脚本没报错」验收。
- 仓库。 用 dev 克隆一个可以丢弃的测试仓库,跑一遍现有测试。确认 Agent 稍后只会拿到这个目录,而不是整个家目录。
- Agent。 按厂商当前文档安装一个 CLI。密钥写入 600 的 env 文件,由会话读取。在 tmux 里启动,先让它只解释仓库结构,不要第一天就做大重构。
- 远程编辑。 本机 SSH 配置增加 Host,用 VS Code 或 Cursor 连上,改一个文件并提交到测试分支。断开笔记本网络,再从控制台执行
tmux attach -t agent。会话还在,就做快照。这一步完成,环境才算搭好。
ssh-keygen -t ed25519 -C "ai-dev-vps" -f ~/.ssh/id_ed25519_ai_vps # 上传的是 id_ed25519_ai_vps.pub
sudo adduser dev sudo usermod -aG sudo dev sudo apt update sudo apt install -y git tmux build-essential python3 python3-venv python3-pip # Node 22 LTS 用发行版或 NodeSource 的当前说明安装 node -v python3 --version git --version
Host ai-vps HostName YOUR_VPS_IP User dev IdentityFile ~/.ssh/id_ed25519_ai_vps IdentitiesOnly yes
mkdir -p ~/.config/ai-dev chmod 700 ~/.config/ai-dev install -m 600 /dev/null ~/.config/ai-dev/provider.env # provider.env 里只放一行,例如 ANTHROPIC_API_KEY=replace-me tmux new -s agent
/etc/ssh/sshd_config.d/99-ai-dev.conf 里写上 PermitRootLogin no、PasswordAuthentication no 和 PubkeyAuthentication yes 之前,先另开一个密钥会话。服务商控制台留着,避免唯一的门被自己关上。
常见问题
1GB 或 2GB 的 VPS 够不够跑 AI 编程?
不够。跳板机只能维持 SSH。Node、语言服务和编程 Agent 同时在时,8GB 内存才是日常编码的地板。Docker 和并行测试还要再加一档。
编程 Agent 需要 GPU VPS 吗?
调用云端模型的 CLI 不需要。GPU 留给训练和大批量本地推理。日常改仓库、跑测试,买的是内存、磁盘和离你近的区域。
能在 Linux VPS 上编 iOS 吗?
不能。签名、模拟器和 xcodebuild 属于 macOS。用远程 Mac,不要在 Linux 上排查一个永远不会出现的工具。
密钥放在 VPS 上安全吗?
只在这台机器为你所有、权限收紧、并且仓库不会提交该文件时才相对安全。文件 600、目录 700,不要写进 shell 历史,也不要交给 root 身份的 Agent。
SSH 能连上是否就算环境搭好了?
不算。验收是笔记本断开后 tmux 会话还在,测试仓库能被 Agent 改动,并且你有一份改动前的快照。
总结
先定执行边界,再注册。编码 VPS 适合合盖后还要跑的 Linux 仓库;Xcode 和签名去 macOS 节点;训练去 GPU。七步都有观察结果之后,远程开发才算搭好。SSH 通了,只说明门开了。