A6API 模型广场 · 全网 AI 大模型统一调度比价中心 (React 纯前

Codex CLI API Key 配置与登录验证指南

更新于 2026-10-26 · a6api.cyou

简答:Codex CLI 可以通过 OpenAI API Key 登录:先在 OpenAI API Platform 创建自己的密钥,再用环境变量或标准输入传给 <code>codex login --with-api-key</code>,最后运行 <code>codex login status</code> 验证。不要把密钥写进代码、命令参数或提交到仓库。

定义:Codex CLI API Key 是用于让终端版 Codex 访问 OpenAI API 的项目密钥,和通过 ChatGPT 账户登录属于两条不同的认证路径。

先照做:创建 API Key 并完成 Codex 登录

本文是独立的 AI API 接入指南,不是 Codex 或 OpenAI 的官方页面。下面只介绍公开资料能够核实的 OpenAI API Key 配置方式;如果你使用的是兼容接口或其他网关,变量名、登录方式和计费规则应以对应服务的文档为准。

  1. 登录 OpenAI API Platform,进入所属项目的 API Keys 页面,创建一个新的 secret key。
  2. 创建成功后立即保存密钥。官方说明显示,完整 secret key 只会在创建时展示,之后无法再次查看;遗失时应重新创建,而不是寻找所谓“找回原密钥”的方法。参考 OpenAI API Key 管理说明。
  3. 确认 Codex CLI 已安装,并在项目目录中运行 codex。官方入门资料列出的安装方式包括 npm install -g @openai/codex,也可参考仓库中的安装说明。
  4. 不要把密钥直接拼在命令行参数中。当前官方仓库的命令实现说明,codex login --with-api-key 会从标准输入读取 API Key,因此推荐使用管道或交互式输入。
  5. 登录后运行 codex login status 查看当前认证状态。需要退出时运行 codex logout。

官方仓库中的命令定义明确列出了 --with-api-key,并给出了从 OPENAI_API_KEY 管道读取的示例:Codex CLI 登录命令源码。如果你的本地版本不识别这些参数,先检查 CLI 版本和安装来源,再对照 OpenAI Codex 官方仓库更新。

macOS/Linux:用环境变量和标准输入配置

OpenAI 的密钥安全建议是使用环境变量 OPENAI_API_KEY,而不是把密钥写入源码。临时配置适合当前终端会话,关闭终端后变量通常不会继续存在。

推荐的交互式写法如下,输入时不会把密钥直接写进命令历史:

read -r -s OPENAI_API_KEY
export OPENAI_API_KEY
printf '\n'

if [ -z "$OPENAI_API_KEY" ]; then
  echo "OPENAI_API_KEY 为空" >&2
  exit 1
fi

printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key
codex login status

如果密钥已经安全地存在环境变量中,可以使用:

if [ -z "${OPENAI_API_KEY:-}" ]; then
  echo "请先设置 OPENAI_API_KEY" >&2
  exit 1
fi

printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key
codex login status

这里使用 printf 把变量内容通过标准输入传递给登录命令,不需要把密钥放进 URL,也不建议把完整密钥直接写在命令行参数中。OpenAI 的安全建议还包括为不同成员、项目或用途使用独立密钥,并定期轮换,具体可参考 API Key 安全最佳实践。

需要长期使用时怎么保存

Windows PowerShell:设置变量并登录 Codex CLI

PowerShell 中可以先为当前会话设置环境变量,再通过管道交给 Codex。以下示例不会把密钥作为 --api-key 参数传入:

$OPENAI_API_KEY = Read-Host "OpenAI API Key" -AsSecureString
$ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($OPENAI_API_KEY)
try {
    $plainKey = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($ptr)
    $env:OPENAI_API_KEY = $plainKey
}
finally {
    if ($ptr -ne [IntPtr]::Zero) {
        [Runtime.InteropServices.Marshal]::ZeroFreeBSTR($ptr)
    }
}

if ([string]::IsNullOrWhiteSpace($env:OPENAI_API_KEY)) {
    throw "OPENAI_API_KEY 为空"
}

$env:OPENAI_API_KEY | codex login --with-api-key
codex login status

如果你要让后续新开的终端继续使用变量,可以使用系统提供的环境变量设置方式;但长期保存前应先确认设备是个人电脑还是共享环境。OpenAI 的安全页面建议避免在客户端应用中暴露密钥、不要提交到公开仓库,并在怀疑泄露时立即删除或轮换,详见 OpenAI 账户与 API Key 安全说明。

PowerShell 的管道行为可能受本地版本和命令解析影响。如果登录后状态不符合预期,先单独检查 $env:OPENAI_API_KEY 是否为空,再重新执行登录命令;不要为了排查把完整密钥打印到屏幕。

ChatGPT 登录和 API Key 登录有什么区别

项目ChatGPT 登录API Key 登录
认证入口在 Codex CLI 中选择 ChatGPT 登录并完成浏览器授权在 API Platform 创建密钥,再通过环境变量或标准输入登录
适合场景希望使用符合账户条件的 ChatGPT 计划权益,且不想手动复制密钥本地脚本、自动化任务、CI/CD 或需要按 API 项目管理访问的场景
密钥处理登录流程可在本地保存认证凭据,通常不需要手动复制 API Key需要自行保护、轮换、撤销 API Key
额度与计费受 ChatGPT 账户、工作区和当前产品规则影响受 API 项目、模型权限、限速与 API 账户设置影响
自动化不适合作为无人值守脚本的唯一认证方案更适合通过 CI/CD Secrets 注入,但要控制权限和生命周期

官方资料将这两种方式分别说明:Codex CLI 可以选择 Sign in with ChatGPT,也可以使用 API Key;ChatGPT 计划页面则把 CLI 作为账户登录入口之一。因为两条路径的账户体系和使用限制不同,不要把 ChatGPT 订阅权益直接当成 API 项目余额或 API Key 权限。可对照 Codex CLI 与 ChatGPT 登录说明 和 使用 ChatGPT 计划访问 Codex。

登录失败时按这张表排查

现象先检查什么下一步动作
命令提示找不到 codexCLI 是否安装成功,当前终端的 PATH 是否包含安装目录重新打开终端,并对照 Codex CLI 官方入门说明检查安装方式
--with-api-key 不被识别本地 Codex CLI 版本是否过旧,是否调用了另一个同名程序运行版本检查并从官方仓库更新,避免混用旧版二进制
登录后仍提示未认证标准输入是否真的传入,环境变量是否为空,是否在另一个终端检查状态重新运行 printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key,然后执行 codex login status
出现 401 或 invalid API key密钥是否复制完整、是否已被删除、是否属于当前项目在 API Key 页面确认密钥状态;必要时创建新密钥并轮换旧密钥
出现权限、额度或限速提示项目的模型访问、API Key 权限、用量和限额检查项目设置与 Usage 页面;官方项目文档说明可按项目管理 API Key、模型访问和限速
CI/CD 中登录失败Secret 是否注入到正确任务、变量名是否为 OPENAI_API_KEY、日志是否暴露了变量在任务中只检查变量是否非空,不打印变量值,并使用独立的 CI 密钥
自定义兼容接口无法连接当前配置是否仍然使用 OpenAI 官方 CLI 的认证路径本文只核实 OpenAI API Key 登录;自定义 Base URL、模型名和网关参数应查看对应兼容接口文档

其中,“命令存在但行为不同”不应直接归因于某个服务故障。先确认实际执行的 Codex CLI 版本、登录命令来源和当前认证状态;公开资料能够确认的是官方仓库当前包含 codex login status、codex logout 以及从标准输入读取 API Key 的选项。

退出、撤销与轮换 API Key

  1. 在 Codex CLI 中运行 codex logout,清理本地登录状态。
  2. 如果只是更换本地使用的密钥,先在 API Platform 创建新密钥,再更新环境变量或 CI/CD Secret。
  3. 用新密钥完成一次登录和最小化验证后,再到 API Keys 页面删除旧密钥。
  4. 如果密钥曾出现在日志、截图、聊天记录、公开仓库或 URL 中,不要只删除本地文件,应立即在 API Key 页面撤销,并检查 Usage 是否出现异常调用。

官方说明指出,删除后的 API Key 不能继续使用;安全最佳实践建议建立轮换流程,并为不同成员或用途使用独立密钥。API Platform 的项目文档还说明,项目可以管理 API Key 权限、模型访问、用量和支出限制,因此生产环境应尽量使用范围更小、生命周期更短的密钥。

不要购买、传播或使用来源不明的 API Key。本文无法核验任何第三方密钥的归属、有效期、权限或安全性;如需使用兼容接口,请自行核对其服务条款、数据处理说明、Base URL 和密钥管理方式。

安全自查清单

如果你只需要让 Codex CLI 在本地工作,最小可行路径是:创建自己的 API Key,临时设置 OPENAI_API_KEY,通过标准输入执行 codex login --with-api-key,再用 codex login status 验证。不要为了“方便”把密钥硬编码到脚本或共享给其他人。

常见问题

Codex CLI API Key 从哪里创建?

在 OpenAI API Platform 的项目 API Keys 页面创建。官方说明显示,完整 secret key 只在创建时展示,遗失后通常需要创建新密钥,不能依赖之后再次查看。

Codex CLI 可以直接使用 OPENAI_API_KEY 吗?

可以把 OPENAI_API_KEY 作为环境变量保存,再通过标准输入执行 <code>printf '%s' "$OPENAI_API_KEY" | codex login --with-api-key</code>。登录后建议运行 <code>codex login status</code> 验证。

为什么 ChatGPT 能登录,API Key 却不能用?

ChatGPT 登录和 API Key 登录是不同认证路径。API Key 还受到项目归属、密钥状态、权限、模型访问、用量和限额影响,应在 API Platform 项目设置中逐项核对。

Windows PowerShell 如何设置 Codex 的 API Key?

可用 <code>Read-Host -AsSecureString</code> 读取后写入当前会话的 <code>$env:OPENAI_API_KEY</code>,再通过管道执行 <code>codex login --with-api-key</code>。不要把完整密钥打印出来或写进脚本仓库。

API Key 泄露后只运行 codex logout 是否足够?

不够。<code>codex logout</code> 用于清理本地登录状态;如果密钥已经暴露,应在 API Key 页面删除或撤销旧密钥,创建替代密钥,并检查项目用量和日志。

第三方兼容接口能直接套用这套 Codex 配置吗?

不能默认认为可以。本文核实的是 OpenAI API Key 与官方 Codex CLI 的登录路径;兼容接口可能要求不同的 Base URL、模型名、认证头或账户规则,应以对应服务的公开文档为准。

相关阅读

参考资料

  1. Codex CLI and Sign in with ChatGPT
  2. OpenAI Codex CLI – Getting Started
  3. openai/codex 官方 GitHub 仓库
  4. Codex CLI 登录命令源码
  5. Where do I find my OpenAI API Key?
  6. Best practices for API key safety
  7. Keeping your OpenAI account secure
  8. Managing projects in the API platform
  9. platform.openai.com
  10. help.openai.com