Codex 登录配置怎么填:ChatGPT 授权、API 密钥与 CI
Codex CLI 可通过 ChatGPT 账号授权或 OpenAI API 密钥登录;前者适合本机使用,后者适合无浏览器环境。
以 2025 年 8 月 31 日发布的鉴权说明为版本线索:Codex CLI 0.30.0 以上已覆盖常见的浏览器授权、API 密钥登录和无头服务器处理方式。现在值得按这条路径重新配置,是因为 Codex 后续安装仍可使用 ChatGPT 账号,而服务器、CI 与多账号环境不能只依赖浏览器回调;提前分清两条鉴权路径,能避免把密钥填错位置。
本文以下步骤依据 OpenAI Codex 官方仓库 README,无头服务器部分同时参考 Codex authentication 文档镜像,中文操作细节参考 编程狮的浏览器授权与 API 令牌说明。
登录前先检查这 5 项
Codex CLI 是运行在终端里的编程代理。开始登录前,先确认终端、网络和身份来源都已准备好,否则后面即使出现登录成功,也可能无法调用模型。
- 安装客户端:macOS 或 Linux 执行
curl -fsSL https://chatgpt.com/codex/install.sh | sh;Windows PowerShell 执行powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex"。官方仓库还提供 npm 与 Homebrew 安装方式。 - 确认命令存在:运行
codex --version。没有输出版本号时,先处理 PATH,不要继续排查登录。 - 准备身份:本机使用准备 ChatGPT 账号;CI 或服务器准备有效的 OpenAI API 密钥。
- 确认网络:本机授权需要浏览器访问登录页面;无头服务器还需要能把认证信息传进去。
- 明确计费路径:ChatGPT 登录使用对应 ChatGPT 套餐权益;API 密钥登录走 OpenAI API 账户的用量计费。两套账号不要混填。
优先选择哪条路径,可按下面的实际使用条件决定:
| 使用场景 | 登录方式 | 浏览器 | 凭证保存位置 | 适合谁 |
|---|---|---|---|---|
| 日常本机使用 | ChatGPT 授权 | 需要 | Codex 凭据目录 | 只有一个交互终端的人 |
| 无图形界面服务器 | API 密钥 | 不需要 | 环境变量或凭据文件 | 远程 SSH、Docker 用户 |
| CI 自动任务 | API 密钥 | 不需要 | CI Secret | 自动化流水线维护者 |
| 多账号并行 | 独立终端加独立密钥 | 可选 | 分别注入环境 | 需要隔离额度和权限的人 |
这张表的实际分界不是“哪个方法更高级”,而是环境里有没有浏览器,以及凭证能否被安全地注入进程。
本机登录:优先走 ChatGPT 授权
本机有浏览器和可交互终端时,先走 ChatGPT 授权。这条路径不需要手动复制密钥,也不容易把密钥贴到聊天记录或终端历史中。
- 在终端进入项目目录,运行:
codex login
- Codex 会显示登录流程,并尝试打开默认浏览器。进入官方登录页面后,使用准备好的 ChatGPT 账号完成授权。
- 浏览器授权完成后回到终端,检查登录状态:
codex login status
- 如果系统没有自动打开浏览器,可以先单独执行安装命令,再运行
codex login;终端给出的本地回调地址需要由同一台机器上的浏览器打开。 - 登录成功后,在项目目录启动一次 Codex:
codex
成功标志不是只看到登录网页,而是终端确认账号已经接入,并且 Codex 能进入交互界面。依据官方仓库说明,运行 codex 后选择 Sign in with ChatGPT,即可使用 Plus、Pro、Business、Edu 或 Enterprise 套餐中包含的 Codex 能力。
如果日常使用 Codex Web,而不是终端客户端,则直接访问 https://chatgpt.com/codex。这条路径和本地 CLI 的登录状态不是一回事:网页能打开,不代表终端已经拿到凭证。
API 密钥登录:把密钥放到正确的进程里
API 密钥适合无头服务器、CI 和需要明确隔离账号的终端。CLI 提供的直接登录方式是:
codex login --api-key "your-api-key-here"
这里的 your-api-key-here 只是占位符,不能原样执行。先在 OpenAI API 控制台创建密钥,再用实际密钥替换;密钥只展示时,应立即复制到密码管理器或 CI Secret,不要保存到仓库中的 .env、截图或提交记录。
如果不想把密钥直接作为命令参数暴露在 shell 历史中,更适合用环境变量。以 macOS、Linux 为例:
export OPENAI_API_KEY='这里替换为实际密钥'
codex login --api-key "$OPENAI_API_KEY"
Windows PowerShell 使用:
$env:OPENAI_API_KEY = "这里替换为实际密钥"
codex login --api-key $env:OPENAI_API_KEY
执行后运行:
codex login status
应能看到已使用 API 密钥登录,而不是 ChatGPT 账号登录。这里的 OPENAI_API_KEY 是进程读取密钥的环境变量;设置后,变量只对当前终端及其子进程生效,关闭终端通常就会失效。
API 密钥不是“填进配置文件”就结束。CLI 需要先通过登录命令接收它,再由客户端保存或读取对应凭据。若之前使用 ChatGPT 登录,后来改用 API 密钥,先执行 codex login status 确认当前身份;需要切换时,运行新的 codex login --api-key ...,不要手动改写来源不明的 auth.json。
无头服务器与 CI:别把浏览器回调当远程登录
无头机器运行 Codex 时,浏览器授权涉及本机回环地址 localhost:1455。如果 Codex 跑在 Docker 容器或远程 SSH 服务器中,直接在自己电脑浏览器里打开远程机器的 localhost:1455,访问的仍是自己的电脑,而不是远程服务器,授权无法正确返回。
无头环境可采用以下两种操作:
- 在本地完成登录后迁移凭据:先在本地运行
codex login,确认codex login status显示已登录,再按 Codex 鉴权文档的 headless 章节把凭据复制到目标机器。复制后检查文件所有权和读取权限,不应让其他系统用户读取。 - 直接注入 API 密钥:在服务器或 CI 中设置
OPENAI_API_KEY,再运行:
codex login --api-key "$OPENAI_API_KEY"
codex login status
CI 中应把密钥保存为运行器的 Secret,例如 OPENAI_API_KEY,由流水线在执行 Codex 前注入:
permissions:
contents: read
steps:
- uses: actions/checkout@v4
- name: Run Codex
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: codex
密钥会作为环境变量进入步骤,而不是写进 YAML 正文。需要注意,仓库里使用的是 actions/checkout@v4 这一示例版本;团队应按组织政策固定并审查第三方 Actions 的版本。
常见卡点:报错信息对应哪一步
提示 codex: command not found 或类似“找不到命令”
这说明客户端尚未安装,或 npm 全局可执行目录不在 PATH。先运行:
codex --version
npm prefix -g
若 npm 安装后找不到命令,将 npm prefix -g 对应的 bin 目录加入 PATH,再重新打开终端。不要在尚未安装客户端时反复执行登录命令。
浏览器能打开登录页,但回到终端后授权失败
检查打开的是当前 Codex 进程显示的回调地址,并确认浏览器与 Codex 位于同一台机器。远程 SSH、容器和端口转发环境不要照搬本机流程,改用 API 密钥,或按 headless 文档迁移凭据。
登录状态正常,但请求仍被拒绝
依次检查三项:API 密钥是否完整;账户是否有可用额度或相应 ChatGPT 套餐权益;当前登录方式是否与预期一致。执行 codex login status,不要只看浏览器是否登录过 ChatGPT。
输出中突然出现 401 或 403
401 通常指向凭证无效或已失效,403 则还要检查账户权限与使用限制。若使用 API 密钥,确认它来自正确的 OpenAI API 账户,而不是 ChatGPT 网页会话中的其他令牌。修正后重新执行 codex login --api-key "$OPENAI_API_KEY",再运行 codex login status。
更换账号后仍调用旧账号
CLI 会保留已有登录状态。仅退出旧账号或打开另一个浏览器标签不够,应先查看 codex login status,再执行对应登录命令。多账号并行时,为每个终端分别设置独立的 OPENAI_API_KEY,避免相互覆盖。
确认成功,再开始第一次调用
完整验证链只有三步:
codex --version
codex login status
codex
第一条应输出本机 Codex 版本号;第二条应显示当前使用 ChatGPT 账号还是 API 密钥;第三条应进入 Codex 交互界面。三项同时成立,才算本地鉴权完成。
如果只是运行一条普通任务,可以把 Codex 指向一个专门测试目录,再输入“读取当前目录文件列表,不要修改文件”。成功标志是返回目录内容且没有鉴权错误。先用只读请求验证,比一上来就让代理修改代码更容易区分“登录成功”和“模型调用失败”。
后续可继续查看 OpenAI Codex 官方仓库 的安装说明与更新记录。若需要在无头机器上迁移认证信息,再对照 Codex authentication 文档的 headless 章节;中文用户也可参考 编程狮的 Codex CLI 登录实操 对照浏览器授权、令牌登录和多账号隔离的适用场景。
评论区
登录后可评论。