Codex App 连接远程 SSH 服务器(autodl)配置

Codex App 连接远程 SSH服务器(autodl)配置记录

1. 本地 SSH 配置,本地Codex开启SSH功能

本地 SSH 配置

Windows SSH 配置文件路径:

text 复制代码
C:\Users\<用户名>\.ssh\config

推荐配置:

ssh 复制代码
Host <服务器别名>
  HostName connect.xxx.seetacloud.com [用户名]
  Port <端口号>
  User root
  IdentityFile C:/Users/<用户名>/.ssh/id_ed25519 [本地私钥文件路径]
  IdentitiesOnly yes

注意:

  • Windows 的 IdentityFile 推荐用正斜杠 /
  • id_ed25519 是私钥
  • id_ed25519.pub 是公钥
  • Codex App 更适合使用免密 SSH,不推荐依赖密码登录

本地Codex开启SSH功能

本地配置文件:C:\Users\<用户名>\.codex\config.toml

编辑文件,在末尾添加这段配置:

bash 复制代码
[features]
remote_connections = true

2. 配置服务器免密登录

将对应的公钥写入了服务器的~/.ssh/authorized_keys文件

用密码登录服务器:

powershell 复制代码
ssh <服务器别名>

把本地公钥 C:\Users\<用户名>\.ssh\id_ed25519.pub 的内容粘贴进去服务器~/.ssh/authorized_keys文件。

保存后执行赋权:

bash 复制代码
chmod 600 ~/.ssh/authorized_keys
exit

本地测试,另外开终端窗口运行:

powershell 复制代码
ssh -v <服务器别名>

最终是不用输入密码,直接免密登录成功。

3. 安装 Codex CLI

服务器上确认 Node 版本:

bash 复制代码
node -v
npm -v

需要 Node 20。若系统默认 Node 太旧,使用 NodeSource 安装 Node 20。

安装 Codex:

bash 复制代码
npm install -g @openai/codex@latest --include=optional --no-audit --no-fund --verbose

如果 codex 路径缓存异常,执行:

bash 复制代码
hash -r

验证:

bash 复制代码
which codex
codex --version

正常输出:

text 复制代码
/usr/bin/codex
codex-cli 0.142.0

4. 服务器配置代理

由于服务器可能无法直接访问 OpenAI API,需要通过 SSH 反向代理:

ssh 复制代码
RemoteForward 7897 127.0.0.1:7897

保持本地代理软件开启,并确认本地代理端口为 7897

登录服务器后设置:

bash 复制代码
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export HTTP_PROXY=http://127.0.0.1:7897
export HTTPS_PROXY=http://127.0.0.1:7897

测试:

bash 复制代码
curl -I https://api.openai.com --connect-timeout 10

返回 401403 等 HTTP 响应都说明网络已通。

5. Codex CLI 登录

服务器上执行:

bash 复制代码
codex login --device-auth

终端会显示:

text 复制代码
https://auth.openai.com/codex/device

以及一次性验证码。

在本地浏览器打开链接,登录 ChatGPT 账号并输入验证码。

登录成功后测试:

bash 复制代码
codex --version
codex

6. Codex App 连接远程 SSH

打开 Codex App:

text 复制代码
设置 → 连接→ SSH→ 添加SSH连接

选择 SSH config 中的 Host:

text 复制代码
<服务器别名>

然后选择远程项目目录,例如:

text 复制代码
/root/autodl-tmp/your_project

连接成功后,Codex App 就可以直接读取、修改、运行远程服务器上的代码。

7. 常见问题

问题 1:ssh -v 显示 Offering public key 后仍然问密码

说明本机已经发送私钥,但服务器没有接受公钥。

解决方法:把本地 id_ed25519.pub 内容追加到服务器:

bash 复制代码
/root/.ssh/authorized_keys

并设置权限:

bash 复制代码
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

问题 2:codex --version 报 Missing optional dependency

重新安装:

bash 复制代码
npm uninstall -g @openai/codex
npm cache clean --force
npm install -g @openai/codex@latest --include=optional --no-audit --no-fund --verbose
hash -r
codex --version

问题 3:api.openai.com 超时

说明服务器无法直连 OpenAI API。

需要确认:

  • 本地代理软件开启
  • 本地代理端口是 7897
  • SSH config 中有 RemoteForward 7897 127.0.0.1:7897
  • 当前 SSH 连接保持打开
  • 服务器已设置 http_proxyhttps_proxy

问题 4:Codex App 连接失败

优先检查:

powershell 复制代码
ssh <服务器别名> "whoami && command -v codex && codex --version"

如果命令行能成功,但 App 失败,删除 App 中旧连接,重新从 SSH config 读取 Host。

参考教程1

参考教程2