/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */
#content_views .toc,
/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */
#content_views.markdown_views > p:empty:has(+ .toc),
#content_views.markdown_views > .toc + p:empty,
/* 富文本旧版目录标记 */
#content_views.htmledit_views #main-toc,
#content_views.htmledit_views #hr-toc,
#content_views.htmledit_views p[id*=\”-toc\”] {
display: none !important;
}
/* 目录去掉后,紧跟的首个标题不再多出一块上边距 */
#content_views.markdown_views > .toc + h1,
#content_views.markdown_views > .toc + h2,
#content_views.markdown_views > .toc + h3,
#content_views.markdown_views > .toc + h4,
#content_views.markdown_views > .toc + p:empty + h1,
#content_views.markdown_views > .toc + p:empty + h2,
#content_views.markdown_views > .toc + p:empty + h3,
#content_views.markdown_views > .toc + p:empty + h4 {
margin-top: 0 !important;
}
Ubuntu 中 Codex CLI 登录失败:使用 OpenAI API Key 解决
最近我在 Ubuntu 虚拟机中配置 OpenAI Codex CLI,希望后续可以直接在 Isaac Lab 项目中使用 Codex 修改和调试代码。
1. 安装 Codex CLI
首先安装 Node.js。Codex CLI 需要较新的 Node.js 版本,因此建议直接安装 Node 20:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash –
sudo apt install -y nodejs
检查 Node.js 和 npm 版本:
node –version
npm –version
我的版本为:
v20.20.2
10.8.2
随后使用 npm 安装 Codex CLI。由于网络环境原因,我使用了 npmmirror:
sudo npm install -g @openai/codex –registry=https://registry.npmmirror.com
安装完成后检查版本:
codex –version
如果输出类似下面内容,说明安装成功:
codex-cli 0.137.0
如果出现 codex 命令入口异常,可以查找实际安装位置:
npm root -g
sudo find /usr /usr/local -path "*@openai/codex*" -o -name "codex.js" 2>/dev/null
我的实际路径为:
/usr/lib/node_modules/@openai/codex/bin/codex.js
因此可以手动建立软链接:
sudo chmod +x /usr/lib/node_modules/@openai/codex/bin/codex.js
sudo ln -sf /usr/lib/node_modules/@openai/codex/bin/codex.js /usr/local/bin/codex
hash -r
再次检查:
codex –version
成功输出:
codex-cli 0.137.0
如果系统中存在旧版 Node.js 导致安装冲突,可以先清理旧包,再重新安装 Node 20:
sudo apt remove -y nodejs npm libnode-dev
sudo apt autoremove -y
sudo apt –fix-broken install -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash –
sudo apt install -y nodejs
2. 登录时遇到地区限制
Codex CLI 安装完成后,版本检查正常:
codex –version
输出:
codex-cli 0.137.0
但是第一次登录时遇到了问题。浏览器弹出的 Codex login 页面提示:

错误信息为:
Sign-in could not be completed
Token exchange failed: token endpoint returned status 403 Forbidden:
Country, region, or territory not supported
Error code:
token_exchange_failed
也就是说,网页登录认证阶段的 token exchange 被拒绝,原因是当前网络出口所在的国家或地区不被支持。
一开始我尝试通过 VPN 和代理解决,但终端和浏览器的网络出口并不总是一致,所以网页登录仍然失败。后来发现 Codex CLI 支持直接使用 API Key 登录。
3. 使用 API Key 登录
查看登录帮助:
codex login –help
可以看到有一个参数:
–with-api-key
说明可以从标准输入读取 API Key:
–with-api-key
Read the API key from stdin
于是我从 OpenAI 平台获取了自己的 API Key,然后在 Ubuntu 终端中执行:
export OPENAI_API_KEY="你的_API_KEY"
printenv OPENAI_API_KEY | codex login –with-api-key
注意:不要把 API Key 写进博客、截图或公开仓库。
登录完成后,检查状态:
codex login status
之后进入项目目录启动 Codex:
cd ~/test20260604/isaac_semicircle_linkage
codex
成功进入 Codex CLI 界面:
OpenAI Codex (v0.137.0)
model: gpt-5.5
directory: ~/test20260604/isaac_semicircle_linkage
4. 总结
这次遇到的问题不是 Codex CLI 没装好,而是网页登录认证时的地区限制:
403 Forbidden: Country, region, or territory not supported
最终解决办法是使用 API Key 登录:
export OPENAI_API_KEY="你的_API_KEY"
printenv OPENAI_API_KEY | codex login –with-api-key
之后就可以在 Ubuntu 项目目录中正常使用 Codex CLI 了。




