V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
爱意满满的作品展示区。
handsomebro

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

  •  
  •   handsomebro · Mar 9 · 2350 views
    This topic created in 61 days ago, the information mentioned may be changed or developed.

    今天在海鲜市场收了一个 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 友们。

    8 replies    2026-04-14 20:03:34 +08:00
    letitbesqzr
        1
    letitbesqzr  
       Mar 9   ❤️ 1
    本地登录后, 跳转到 http://localhost:1455 , 拿到完整的 url 地址, 去服务器上 curl http://localhost:1455/xxxx
    codehz
        2
    codehz  
       Mar 9 via Android
    一楼亮了,我之前也是这么干的
    Yuesh1
        3
    Yuesh1  
       Mar 9
    ssh -N -L 18789:127.0.0.1:18789 [email protected]
    handsomebro
        4
    handsomebro  
    OP
       Mar 9
    @letitbesqzr 我为什么知道的这么晚
    shunia
        5
    shunia  
       Mar 10
    招很多,我用过两种:
    本地 login 后复制 auth.json 到其他机器,其他文件都不需要;
    远程装一个 CliProxyAPI ,直接在 CPA 里 auth ;
    ggbond2
        6
    ggbond2  
       Mar 10
    ssh -N -L 18789:127.0.0.1:18789 root@xxxx
    PowerDi
        7
    PowerDi  
       Mar 15
    windows 也能执行 sh 脚本吗
    summerzhen
        8
    summerzhen  
       Apr 14
    @letitbesqzr 现在没效果了? curl 显示 State Mismatch?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   936 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 59ms · UTC 22:34 · PVG 06:34 · LAX 15:34 · JFK 18:34
    ♥ Do have faith in what you're doing.