AI 编程教程中文版
官方教程中文版云端与远程环境

连接远程开发环境

SSH remote connections 当前处于 alpha。

这一篇用 8 分钟换什么:把 SSH remote connections 从"远端跑命令"重新理解成把执行机器换到 SSH host——远端能读什么、能写什么、能连哪里,Codex 就影响哪里。读完后你会先用三条命令(ssh devbox / command -v codex / codex --version)做最小验证,再去碰 Codex 配置。

remote connections 是 alpha feature。安全配置应和正常 SSH access 同标准:trusted keys、最小权限账号、不暴露 unauthenticated public listener。

SSH remote connections 当前处于 alpha。

如果今天要启用,在 ~/.codex/config.toml[features] table 中设置:

remote_connections = true

availability、setup flows 和 supported environments 可能会随着 feature 改进而变化。

remote connections 让 Codex 可以处理位于另一台 SSH-accessible machine 上的 projects。

当你需要的 codebase、credentials、services 或 build environment 在 remote host 而不是 local machine 上时,可以使用它。

remote host 的安全配置应和正常 SSH access 保持同等标准:

  • trusted keys。
  • least-privilege accounts。
  • 不暴露 unauthenticated public listeners。

什么时候应该用 remote connections

适合使用的场景:

  • 项目只能在远端机器构建,例如依赖 Linux 服务、GPU、本地数据库或内网资源。
  • 凭据只允许存在远端,不能复制到本机。
  • 代码仓库很大,本机同步成本高。
  • 团队已经有固定 devbox,希望 Codex 直接在同一环境中读写文件和跑命令。

不适合使用的场景:

  • 只是想让 Codex 访问 GitHub 仓库。Cloud tasks 或本地 clone 通常更简单。
  • 远端 SSH 权限过大,账号可以无约束改生产环境。
  • 远端 shell 环境不可复现,codex 命令依赖交互式配置才可用。
  • 需要把 app server 暴露到公网才能连上。官方建议走 SSH port forwarding、VPN 或 mesh networking。

先把远端当成“Codex 实际执行机器”来评估:它能读什么、能写什么、能连哪里,Codex 就可能影响哪里。

Codex App

在 Codex app 中,你可以从 SSH host 添加 remote projects,并让 threads 针对 remote filesystem 和 shell 运行。

  1. 把 host 添加到 SSH config,让 Codex 可以 auto-discover。
Host devbox
  HostName devbox.example.com
  User you
  IdentityFile ~/.ssh/id_ed25519

Codex 会从 ~/.ssh/config 读取 concrete host aliases,通过 OpenSSH resolve,并忽略 pattern-only hosts。

  1. 确认运行 Codex app 的这台机器可以 SSH 到该 host。
ssh devbox
  1. 在 remote host 上安装并登录 Codex。

app 会通过 SSH 启动 remote Codex app server,使用 remote user's login shell。

请确认 remote host 的该 shell 中,codex command 在 PATH 内可用。

  1. 在 Codex app 中打开 Settings > Connections,添加或启用 SSH host,然后选择 remote project folder。

如果 remote connections 还没有出现,请在 ~/.codex/config.toml 中启用 alpha feature flag:

[features]
remote_connections = true

remote project threads 会在 remote host 上运行 commands、读取 files,并写入 changes。

截图:

启用前检查

连接失败多数不是 Codex 本身问题,而是 SSH、PATH 或远端登录态问题。先用命令行做最小检查:

ssh devbox
command -v codex
codex --version

如果 ssh devbox 能进,但 command -v codex 找不到,说明 Codex app 通过 login shell 启动 remote app server 时也大概率找不到 codex。修法是在远端用户的 login shell 初始化文件里补 PATH,或用官方安装方式重新安装 Codex。

~/.ssh/config 中要使用 concrete host alias:

Host devbox
  HostName devbox.example.com
  User you
  IdentityFile ~/.ssh/id_ed25519

Codex 会忽略 pattern-only host。也就是说,Host * 这类通用段可以提供默认值,但不能作为可选择的远程连接入口。

常见故障

现象优先检查
Settings 中看不到 remote connections~/.codex/config.toml 是否启用 [features] remote_connections = true,并重启 app。
看不到某个 SSH host~/.ssh/config 是否有 concrete alias,OpenSSH 是否能 resolve。
连接后远端启动失败远端 login shell 下 codex 是否在 PATH
命令运行位置不对确认选择的是 remote project folder,而不是本机 project。
本地文件没变化remote project threads 在远端读写文件,本地 clone 不会自动同步。
安全审查不清楚用最小权限账号,限制远端凭据和网络访问,避免把生产账号直接暴露给日常开发线程。

排查时不要一开始就改 Codex 配置。先把 ssh devbox、远端 codex --version、远端项目路径这三件事跑通。

认证和网络暴露

使用 SSH port forwarding,并配合 local-host WebSocket listeners。

不要在 shared 或 public network 上暴露 unauthenticated app-server listener。

如果你需要访问当前 network 之外的 remote machine,请使用 VPN 或 Tailscale 这类 mesh networking tool,而不是把 app server 直接暴露到 internet。

团队使用边界

团队启用 remote connections 时,最好把环境责任分清:

  • SSH host 命名、账号权限和密钥轮换由运维或仓库维护者负责。
  • 远端 Codex 安装、版本更新和 PATH 由 devbox bootstrap 脚本负责。
  • 项目级 instructions、rules、skills 继续放在仓库中,让本地和远端行为一致。
  • 不把生产数据库、生产密钥直接放进日常 Codex 远程开发账号。

远程连接本身不是部署系统。它只是让 Codex 把执行位置切到 SSH host。最终发布仍应经过仓库 CI、PR review、deployment gate 或现有上线流程。

官方资料

接下来去哪

本页目录