V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
handsomebro
V2EX  ›  分享创造

Codex Remote Login : 一键解决远程服务器 / VPS 登录 Codex CLI 失败的问题

  •  
  •   handsomebro · 19 小时 11 分钟前 · 373 次点击

    今天在海鲜市场收了一个 ChatGPT Team 的一个月车位,想着终于能爽用一把官方的 Codex 5.4 了。

    结果一顿操作上服务器(一台没有 GUI 的纯净 Linux VPS ),敲下 codex login,傻眼了。

    官方这个 CLI 的认证逻辑非常有毒: 它必须要求你在本地浏览器完成 OAuth 授权,然后网页端会把 Token 回调到 http://localhost:1455。 因为我是 SSH 连在远程 VPS 上敲的登录命令,VPS 在 1455 端口干等,而我的浏览器在本地的 Mac 上,回调根本打不到服务器,最后要不就是满屏的 State Mismatch 错误,要不就是直接 Bad Request

    CLI 提示信息说,Headless 机器可以使用 codex login --device-auth(也就是给你一串验证码去浏览器填)。结果一敲这行命令,打开本地浏览器,登录后提示:当前 Team 管理员未开启设备验证功能... GG 。

    查了一下 GitHub 和各种论坛,大部分老哥给出的“偏方”是: 在自己本地有浏览器的电脑装一个 Codex CLI -> 登录成功 -> 把 ~/.config/codex 等一堆授权文件夹用 tar 打个包 -> SCP 传到远端 VPS 解压覆盖。 这种手工搬运 Token 的方式实在是既繁琐(每次过期都要折腾一轮),又感觉极度不优雅。

    既然是网络的痛点,那就走网络解决:SSH 临时隧道

    原理很简单:只要我在执行 codex login 的同时,把本机的 1455 端口悄悄通过 SSH 映射到远端服务器的 1455 端口,那浏览器重定向不就完美回传了吗?

    为了以后不再折腾,顺手糊了一个极简的 Bash 脚本,完全零依赖。 核心逻辑就是用 SSH ControlSocket 在后台默默建立一个临时隧道,触发登录之后,只要你授权完成或者 Ctrl+C 打断,它会自动 trap cleanup EXIT,把这条隐藏的隧道拆干净,不留任何多余进程,如丝般顺滑。

    脚本开源放在这了:

    👇👇👇

    GitHub: codertesla/codex-remote-login

    用法极其傻瓜:

    (全程都在你本地的 Mac/Windows 终端下运行)

    1. 把它 down 下来
    git clone https://github.com/codertesla/codex-remote-login.git
    cd codex-remote-login
    chmod +x codex-remote-login.sh
    
    1. 执行脚本,后面跟上你的 SSH 目标服务器(支持 config alias 或者指定私钥)
    # 格式
    ./codex-remote-login.sh <你的远端 SSH 信息>
     
    # 比如
    ./codex-remote-login.sh [email protected]
    ./codex-remote-login.sh my-vps
    

    运行后它会弹出一个链接,你本地浏览器点进去走完授权,它就会提示远程登录成功,然后自动挥挥衣袖带走隧道。

    希望这个小脚本能帮到同样在 VPS 或者跳板机上开发,又被 Codex CLI 这个诡异的重定向逻辑折磨过的 V 友们。

    6 条回复    2026-03-10 10:33:03 +08:00
    letitbesqzr
        1
    letitbesqzr  
       18 小时 47 分钟前   ❤️ 1
    本地登录后, 跳转到 http://localhost:1455 , 拿到完整的 url 地址, 去服务器上 curl http://localhost:1455/xxxx
    codehz
        2
    codehz  
       17 小时 40 分钟前 via Android
    一楼亮了,我之前也是这么干的
    Yuesh1
        3
    Yuesh1  
       16 小时 8 分钟前
    ssh -N -L 18789:127.0.0.1:18789 [email protected]
    handsomebro
        4
    handsomebro  
    OP
       14 小时 58 分钟前
    @letitbesqzr 我为什么知道的这么晚
    shunia
        5
    shunia  
       2 小时 49 分钟前
    招很多,我用过两种:
    本地 login 后复制 auth.json 到其他机器,其他文件都不需要;
    远程装一个 CliProxyAPI ,直接在 CPA 里 auth ;
    ggbond2
        6
    ggbond2  
       1 小时 42 分钟前
    ssh -N -L 18789:127.0.0.1:18789 root@xxxx
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   3973 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:15 · PVG 12:15 · LAX 21:15 · JFK 00:15
    ♥ Do have faith in what you're doing.