在一些远程服务器上登录 Codex 时,虽然有三种登录方式,但在没有授权码的情况下,通常只能通过链接登录。
然而,这种方式常常会遇到两个问题:
- 在本地浏览器打开登录链接后,会跳转到
localhost地址,导致服务器端无法完成登录。 - 有时即使在本地登录,也可能一直卡住,无法完成认证。
针对这些问题,这里提供两种解决方案。本文适用于 在服务器上使用 Codex 进行登录 的场景,尤其适合 无头环境、无图形界面环境、纯终端环境。
如果你是在 VS Code 插件中登录,登录链接有时可能无法直接看到。
因此这里更推荐使用 Codex CLI 进行登录。
如果尚未安装 Codex CLI,可通过官方文档安装:
Codex CLI
安装完成后,执行:
codex login
选择方式一,即可在控制台中获得登录链接。
1. 复制本地授权文件(最简单)
这种方法的原理是:先在本地完成登录,再将本地生成的认证文件复制到服务器上。
步骤
- 在自己的电脑上登录 Codex。
- 登录成功后,找到认证文件
auth.json。
Windows 通常位于:
C:\Users\你的用户名\.codex\auth.json
Linux 或 macOS 通常位于:
~/.codex/auth.json
- 将该文件复制到服务器对应位置。
服务器上的目标路径通常为:
~/.codex/auth.json
可以使用可视化工具复制,也可以使用命令行:
scp ~/.codex/auth.json user@server:~/.codex/auth.json
复制完成后,重新启动 Codex,即可登录成功。
2. 本地端口转发
这种方法的原理是:通过 SSH 端口转发,将服务器上的回调端口映射到本地,从而使浏览器中的 `localhost`` 回调能够正确返回到服务器侧的登录流程。
步骤
-
在本地电脑执行:
ssh -L 1455:localhost:1455 用户名@服务器这里的
1455可以替换为登录流程中实际使用的端口。
这条命令的作用是将本地端口1455转发到服务器上的1455端口。 -
在服务器上执行:
codex login复制终端中输出的登录链接。
-
在本地浏览器中打开该登录链接。
这样浏览器跳转到本地 localhost 时,请求就会通过 SSH 转发到服务器,从而完成登录。
