Codex 服务器端使用指南 ChatGPT 登录缓存迁移方案
Codex 服务器端使用指南
ChatGPT 登录缓存迁移方案
适用于:Windows 本地 + Xshell/Linux 服务器 + iSeg 项目
版本:2026-05-07 整理版
|
核心结论:服务器上的 Codex 已经可以通过复制本地 ChatGPT 登录缓存 auth.json 的方式登录。最终验证结果为:auth_mode = chatgpt,codex login status = Logged in using ChatGPT。 |
|
安全提醒:auth.json 等同于登录凭据。不要发给任何人、不要截图、不要提交到 Git、不要放进项目目录。只应存放在可信任机器的 ~/.codex/auth.json。 |
目录
1. 为什么不用 API,而改用 ChatGPT 登录缓存
2. 字段说明:IP、端口、路径、代理分别是什么
3. 第一次要做的完整流程
4. 后续每次重新打开服务器要做什么
5. 推荐日常启动脚本
6. 遇到过的所有问题与解决方法
7. 安全与使用建议
8. 官方参考文档
1. 为什么不用 API,而改用 ChatGPT 登录缓存
背景:服务器上最开始尝试使用 OpenAI API key 登录 Codex,但出现了 Quota exceeded。这个错误不是 iSeg 或 Codex 安装失败,而是 OpenAI Platform API 账户没有可用额度/余额,或者项目限额不足。ChatGPT Plus 与 OpenAI Platform API 是两套不同的计费体系;用 API key 登录会走 Platform API 计费,不会自动使用 ChatGPT Plus 订阅。
因此改用的方案:在本地 Windows 电脑上用 ChatGPT 账号登录 Codex CLI,并强制把登录凭据保存为文件 auth.json;然后把这个文件复制到服务器 ~/.codex/auth.json。服务器上的 Codex CLI 就能复用这份 ChatGPT 登录缓存。
为什么好用:服务器通常没有浏览器,device-auth 又可能被网络或权限拦住。复制 auth.json 可以绕过服务器浏览器登录和 device code 登录失败的问题。只要服务器能通过代理访问 OpenAI 服务,Codex 就可以在 Xshell 里作为代码助手使用。
为什么可以避免额外买 API token:这个方案用的是 ChatGPT 登录缓存,不是 API key。也就是说,Codex 不再走 Platform API key 的额度/计费路径,而是走 ChatGPT 登录体系。
实现机制:Codex CLI 登录后会在本地缓存登录信息。官方文档说明缓存可能位于 ~/.codex/auth.json 或系统凭据存储;通过设置 cli_auth_credentials_store = "file" 可以强制存到 auth.json。CLI 和 IDE 扩展共享缓存;ChatGPT 登录会包含可刷新 token,使用中通常可自动刷新。
2. 字段说明:IP、端口、路径、代理分别是什么
|
下面所有命令里的“汉字字段”都需要替换成你自己的值。表格最后一列给出了本次排查中你的实际示例。 |
|
字段/占位符 |
什么意思 |
去哪里查 |
在命令里怎么写 |
|
本地用户名 |
Windows 当前用户的用户名,用于定位 C:\Users\用户名。 |
PowerShell 执行:echo $env:USERPROFILE |
%USERPROFILE% 等价于 C:\Users\17310 |
|
本地 Codex 配置目录 |
本地 Windows 上保存 Codex 配置和 auth.json 的目录。 |
PowerShell:dir $env:USERPROFILE\.codex |
$env:USERPROFILE\.codex |
|
服务器用户名 |
登录服务器时使用的 Linux 用户名。 |
看 Xshell 登录信息或命令行提示符。 |
username@服务器IP |
|
服务器 IP |
服务器的网络地址。 |
Xshell 会话属性里的 Host/主机。 |
username@服务器IP |
|
SSH 端口 |
scp/ssh 连接服务器使用的端口。默认常见为 22。 |
Xshell 会话属性里的 Port/端口。 |
scp -P 1222 ... |
|
服务器 Codex 环境 |
安装 Node/Codex CLI 的 conda 环境名。 |
服务器执行 conda env list。 |
conda activate codex-node |
|
服务器代理地址 |
服务器本机可用的代理监听地址。127.0.0.1 表示服务器自己。 |
服务器执行 curl cip.cc 检查代理出口。 |
export HTTPS_PROXY=http://127.0.0.1:2333 |
|
服务器代理端口 |
代理服务监听的端口。你这次用 2333。 |
问服务器代理配置,或看已有 export 设置。 |
http://127.0.0.1:2333 |
|
本地 Node 安装路径 |
Windows 上 node.exe 和 npm.cmd 所在目录。 |
你安装 Node 时选择的路径;或 Test-Path 检查。 |
$env:Path += ";E:\software\nodejs;$env:APPDATA\npm" |
3. 第一次要做的完整流程
|
本节是第一次从零配置时要做的。每一步都按“在哪个平台、做什么、命令、正常结果、失败看哪个问题”排列。 |
3.1 本地 Windows:准备 Codex CLI 并生成 ChatGPT auth.json
|
平台/位置 |
做什么 |
命令 |
正常结果/成功标志 |
失败时看 |
|
Windows PowerShell |
确认 Node/npm 可用。 |
node -v |
正常显示版本号,例如 node: v24.15.0;npm 显示版本号。 |
失败看问题 5、6、7 |
|
Windows PowerShell |
如果 Node 装在自定义目录,临时加入 PATH。 |
$env:Path += ";本地Node安装路径;$env:APPDATA\npm" |
node 与 npm.cmd 都显示版本号。 |
失败看问题 6、7 |
|
Windows PowerShell |
安装 Codex CLI,包含 Windows 可选依赖。 |
npm.cmd install -g @openai/codex@latest --include=optional |
显示 codex-cli 版本,例如 codex-cli 0.128.0。 |
失败看问题 7、8 |
|
Windows PowerShell |
强制 Codex 把登录凭据写到文件 auth.json。 |
mkdir $env:USERPROFILE\.codex -Force |
Notepad 打开 config.toml。写入 cli_auth_credentials_store = "file" 并保存。 |
失败看问题 15 |
|
Windows Notepad |
写入配置。 |
cli_auth_credentials_store = "file" |
保存后关闭。 |
失败看问题 15 |
|
Windows PowerShell |
用 ChatGPT 登录 Codex。 |
codex.cmd login |
浏览器打开登录页,登录成功后返回终端。 |
失败看问题 1、5、8 |
|
Windows PowerShell |
验证 auth.json 已生成且是 ChatGPT 登录。 |
dir $env:USERPROFILE\.codex\auth.json |
第一条能看到 auth.json;第二条输出 chatgpt。 |
失败看问题 15、16 |
本地 Windows 完整示例命令
|
# 你的本地 Windows 示例: |
3.2 本地 Windows → 服务器:复制 auth.json
|
平台/位置 |
做什么 |
命令 |
正常结果/成功标志 |
失败时看 |
|
Xshell/服务器 |
先确保服务器上有 ~/.codex 目录。 |
mkdir -p ~/.codex |
无输出,直接回到命令提示符。 |
失败看问题 15 |
|
Windows PowerShell |
用 scp 复制本地 auth.json 到服务器。注意端口用 -P。 |
scp -P 服务器SSH端口 "$env:USERPROFILE\.codex\auth.json" "服务器用户名@服务器IP:~/.codex/auth.json" |
提示输入服务器密码;随后出现 auth.json 100%。 |
失败看问题 9、10 |
|
Xshell/服务器 |
设置服务器上 auth.json 权限。 |
chmod 600 ~/.codex/auth.json |
无输出,直接回到命令提示符。 |
失败看问题 15 |
|
Xshell/服务器 |
确认服务器收到的是 ChatGPT 登录缓存。 |
python -c "import json, os; print(json.load(open(os.path.expanduser('~/.codex/auth.json'))).get('auth_mode'))" |
输出 chatgpt。 |
失败看问题 15、16 |
复制 auth.json 的成功示例
|
# 你的实际成功命令: |
3.3 服务器 Linux/Xshell:验证 Codex 已用 ChatGPT 登录
|
平台/位置 |
做什么 |
命令 |
正常结果/成功标志 |
失败时看 |
|
Xshell/服务器 |
激活安装 Codex 的 conda 环境。 |
conda activate codex-node |
命令行前缀变为 (codex-node)。 |
失败看问题 11 |
|
Xshell/服务器 |
清掉 API key 相关环境变量,避免仍走 API 计费。 |
unset OPENAI_API_KEY |
无输出,直接回到命令提示符。 |
失败看问题 16 |
|
Xshell/服务器 |
检查登录状态。 |
codex login status |
输出 Logged in using ChatGPT。 |
失败看问题 16、17 |
最终登录状态成功标志
|
# 你已经看到的正常结果: |
3.4 服务器 Linux/Xshell:启动 Codex 进行聊天/代码工作
|
平台/位置 |
做什么 |
命令 |
正常结果/成功标志 |
失败时看 |
|
Xshell/服务器 |
进入 iSeg 项目目录。 |
cd 服务器项目路径 |
命令行路径变为 ~/iSeg 或 pwd 显示项目目录。 |
失败看问题 11 |
|
Xshell/服务器 |
设置服务器代理。大小写都设置,避免 Node/Codex 不认。 |
export HTTP_PROXY=http://代理地址:代理端口 |
无输出。随后 curl -I https://api.openai.com/v1/models 应返回 HTTP/2 401。 |
失败看问题 3、17 |
|
Xshell/服务器 |
启动 Codex,允许在当前工作区读写,敏感操作需审批。 |
codex --sandbox workspace-write --ask-for-approval on-request |
进入 Codex 交互界面,可以输入中文任务;不再提示 Quota exceeded。 |
失败看问题 2、3、16、17 |
服务器启动 Codex 示例
|
# 你的服务器启动示例: |
|
第一次进入 Codex 后建议输入:先不要修改任何代码。请读取当前项目 README 和主要脚本,告诉我如何使用预训练 encoder/decoder 运行 demo。不要运行训练,不要删除文件。 |
4. 后续每次重新打开服务器要做什么
|
auth.json 已经复制成功后,后续通常不需要再从 Windows 复制。每次重新开 Xshell,主要做:激活环境、进入项目、设置代理、启动 Codex。 |
|
平台/位置 |
做什么 |
命令 |
正常结果/成功标志 |
失败时看 |
|
Xshell/服务器 |
激活 Codex 所在环境。 |
conda activate codex-node |
前缀变成 (codex-node)。 |
失败看问题 11 |
|
Xshell/服务器 |
进入项目目录。 |
cd ~/iSeg |
命令行路径显示 ~/iSeg。 |
失败看问题 11 |
|
Xshell/服务器 |
设置代理。 |
export HTTP_PROXY=http://127.0.0.1:2333 |
无输出。curl 测试 api.openai.com/v1/models 返回 401。 |
失败看问题 3、17 |
|
Xshell/服务器 |
确认仍是 ChatGPT 登录。 |
unset OPENAI_API_KEY |
输出 Logged in using ChatGPT。 |
失败看问题 16 |
|
Xshell/服务器 |
启动 Codex。 |
codex --sandbox workspace-write --ask-for-approval on-request |
进入 Codex 聊天/代码界面。 |
失败看问题 16、17 |
5. 推荐日常启动脚本
用途:把“激活环境、进入项目、设置代理、启动 Codex”写成一个脚本,以后只要执行一个命令。
正常结果:执行 bash ~/start_codex_iseg.sh 后进入 Codex 交互界面。
服务器上第一次创建启动脚本
|
cat > ~/start_codex_iseg.sh <<'EOF' |
后续使用
|
# 后续每次打开 Xshell: |
6. 遇到过的所有问题与解决方法
|
如果前面流程表某一步失败,就按“失败时看”的问题编号跳到这里。 |
问题 1:PyCharm / JetBrains AI Assistant 一直转圈或 Reconnecting
现象:PyCharm 里 AI Assistant/Codex 一直转圈,或出现 Reconnecting、timeout waiting for child process to exit。
原因:本地 Codex 子进程、JetBrains 插件、代理/登录缓存之间没有稳定连上。
解决:先停止当前线程,重启 PyCharm;必要时用 Clean Up Codex Installation 清理;确认项目不要放在 WSL;给 PyCharm 配 HTTP Proxy。若插件继续卡,改用 Codex CLI。
正常结果:CLI 或插件能正常回答“读取 README”这种只读任务。
问题 2:服务器 codex login --device-auth 失败
现象:device-auth 报 403 Forbidden,或 error sending request for https://auth.openai.com/api/accounts/deviceauth/usercode。
原因:服务器上的 ChatGPT OAuth/device code 认证链路不可用,可能被网络、IP、权限或服务策略拦住。
解决:不要继续硬试 device-auth。改用本方案:本地 ChatGPT 登录生成 auth.json,复制到服务器 ~/.codex/auth.json。
正常结果:服务器 codex login status 显示 Logged in using ChatGPT。
问题 3:服务器访问 api.openai.com 超时
现象:curl -I https://api.openai.com/v1/models 返回 Connection timed out。
原因:服务器不走你本地电脑的 VPN。服务器必须自己能通过代理访问 OpenAI。
解决:设置服务器代理:export HTTP_PROXY/HTTPS_PROXY/ALL_PROXY。你的例子是 http://127.0.0.1:2333。
正常结果:curl -I https://api.openai.com/v1/models 返回 HTTP/2 401。401 是正常的,代表网络通但没带 API key。
问题 4:Quota exceeded
现象:Codex 里输入后提示 Quota exceeded. Check your plan and billing details。
原因:当时使用的是 API key 登录,走 OpenAI Platform API 额度;账户没有可用 API credits 或限额不足。
解决:放弃 API key 登录,改用 ChatGPT 登录缓存 auth.json。复制后 unset OPENAI_API_KEY 和 CODEX_API_KEY。
正常结果:codex login status 显示 Logged in using ChatGPT,启动后不再提示 Quota exceeded。
问题 5:Windows PowerShell 识别不了 node/npm/codex
现象:node、npm 或 codex 报“无法将某项识别为 cmdlet”。
原因:未安装 Node/Codex CLI,或安装目录未加入 PATH。
解决:安装 Node.js;若装在自定义路径,把本地 Node 路径和 %APPDATA%\npm 加到 PATH。
正常结果:node -v、npm.cmd -v、codex.cmd --version 都显示版本号。
问题 6:Node 装在 E:\software\nodejs 后仍找不到
现象:node 命令找不到,但实际 Node 装在 E:\software\nodejs。
原因:PATH 没包含 E:\software\nodejs。
解决:临时执行:$env:Path += ";E:\software\nodejs;$env:APPDATA\npm"。之后可永久加入用户 PATH。
正常结果:node -v 输出 v24.15.0 或类似版本。
问题 7:npm.ps1 / codex.ps1 被 PowerShell 执行策略拦住
现象:npm -v 或 codex 报“禁止运行脚本”。
原因:PowerShell 默认执行策略不允许运行 npm.ps1/codex.ps1。
解决:直接用 npm.cmd 和 codex.cmd;或执行 Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned。
正常结果:npm.cmd -v 和 codex.cmd --version 正常输出。
问题 8:Missing optional dependency @openai/codex-win32-x64
现象:codex.cmd login 报 Missing optional dependency @openai/codex-win32-x64。
原因:Windows 平台对应的 Codex 可选二进制依赖没有装下来。
解决:重新安装:npm.cmd uninstall -g @openai/codex @openai/codex-win32-x64;npm.cmd cache clean --force;npm.cmd install -g @openai/codex@latest --include=optional。
正常结果:codex.cmd --version 输出 codex-cli 版本。
问题 9:scp: Could not resolve hostname
现象:scp 报 Could not resolve hostname x.x.x.x.。
原因:IP 后面多打了一个点,或主机名写错。
解决:去掉 IP 后的点。正确:username@x.x.x.x:~/.codex/auth.json。
正常结果:进入输密码阶段或出现 auth.json 100%。
问题 10:scp 连接 22 端口超时
现象:scp 默认连接 port 22 timed out。
原因:你的 Xshell 不是用 22 端口,而是 1222;scp 默认端口不对。
解决:使用 -P 指定端口:scp -P 1222 ...。
正常结果:出现 auth.json 100% 即成功。
问题 11:服务器 base 环境里 codex: command not found
现象:在 (base) 下运行 codex 报 command not found。
原因:Codex 安装在 conda 环境 codex-node 里,base 环境找不到。
解决:先执行 conda activate codex-node,再运行 codex。
正常结果:命令行前缀显示 (codex-node),codex --version 正常。
问题 12:API key、ChatGPT 密码、token 的区别
现象:不确定 OpenAI key 是不是密码;也不清楚 token 是什么。
原因:API key 是 OpenAI Platform 的接口密钥,不是 ChatGPT 密码;token 是模型计费/计算的文本单位;auth.json 里的 token 是登录凭据。
解决:不要把 ChatGPT 密码/API key/auth.json 混用。本方案只需要 auth.json,不需要购买 API token。
正常结果:auth_mode 输出 chatgpt,表示走 ChatGPT 登录缓存。
问题 13:PowerShell 和 CMD 不习惯/混淆
现象:PowerShell 变量写法 $env:USERPROFILE;CMD 写法 %USERPROFILE%。
原因:两者是不同 shell:PowerShell 更适合脚本和对象处理,CMD 更传统简单。
解决:如果用 PowerShell,就按 $env:...;如果用 CMD,就改成 %...%。比如 scp 命令在 CMD 中用 %USERPROFILE%。
正常结果:命令能找到本地 auth.json 并成功 scp。
问题 14:Node 安装器安装 Chocolatey / Visual Studio Build Tools 失败
现象:蓝色窗口显示 Chocolatey、Visual Studio Build Tools、Failed to download channels file。
原因:Node 安装器可选的 native modules 编译工具链安装失败,不影响 Codex CLI 核心安装。
解决:关闭该工具链窗口;重新打开 PowerShell 测 node -v/npm.cmd -v。重新安装 Node 时不要勾 Automatically install necessary tools。
正常结果:node -v 和 npm.cmd -v 正常输出即可继续。
问题 15:auth.json 没生成或不是 chatgpt
现象:dir auth.json 找不到;或 auth_mode 不是 chatgpt。
原因:本地 Codex 没用文件存储,或者之前用 API key 登录过。
解决:在本地 config.toml 写 cli_auth_credentials_store = "file";然后 codex.cmd login;必要时 codex logout 后重新登录 ChatGPT。
正常结果:python 读取 auth_mode 输出 chatgpt。
问题 16:服务器复制了 auth.json 但仍像 API key 或 Not logged in
现象:codex login status 不是 Logged in using ChatGPT,或仍 Quota exceeded。
原因:服务器还保留 API key 环境变量,或 auth.json 权限/路径不对。
解决:执行 chmod 600 ~/.codex/auth.json;unset OPENAI_API_KEY;unset CODEX_API_KEY;确认 ~/.codex/auth.json 的 auth_mode 是 chatgpt。
正常结果:codex login status 显示 Logged in using ChatGPT。
问题 17:服务器代理设置后 Codex 仍连不上
现象:curl cip.cc 可显示代理 IP,但 Codex 仍卡;或 curl api 不是 401。
原因:可能只设置了小写代理,或 Codex/Node 不识别;也可能代理端口不对。
解决:大小写代理变量都设置:HTTP_PROXY、HTTPS_PROXY、ALL_PROXY、http_proxy、https_proxy、all_proxy。确认端口是服务器本机代理端口。
正常结果:curl -I https://api.openai.com/v1/models 返回 HTTP/2 401。
7. 安全与使用建议
• auth.json 等同于登录凭据。只复制到可信服务器,不要通过聊天、截图、邮件、Git 仓库传播。
• 不要在服务器 ~/.bashrc 里写 API key。本方案不需要 API key。
• 进入 Codex 前建议使用 workspace-write + on-request,而不是危险的全权限模式。
• 第一次让 Codex 处理 iSeg 项目时,先用“只读分析”任务:不要修改代码、不要运行训练、不要删除文件。
• 训练类长任务建议自己用 tmux 跑;Codex 负责读代码、改脚本、解释报错,不建议让它直接长期占着训练进程。
• 每次让 Codex 改代码前,最好先 git status,并在关键节点 commit,便于回滚。
推荐提示词
|
# 推荐给服务器 Codex 的第一条指令: |
8. 官方参考文档
• Codex CLI:安装、运行、终端使用:https://developers.openai.com/codex/cli
• Codex Authentication:ChatGPT/API key 登录、auth.json 缓存、凭据存储:https://developers.openai.com/codex/auth
• Codex CI/CD auth:在可信机器上生成 auth.json 并复制到远程机器:https://developers.openai.com/codex/auth/ci-cd-auth
• Codex Agent approvals & security:workspace-write、read-only、approval 设置:https://developers.openai.com/codex/agent-approvals-security
• Codex CLI reference:login/status/sandbox 等命令说明:https://developers.openai.com/codex/cli/reference
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)