In OpenAI Codex CLI auf Headless-Server anmelden

Um auf einem Headless-Remote-Server, z. B. Ubuntu Server, Codex über das eigene Konto zu authentifizieren, so wie hier beschrieben vorgehen.

Ich habe im Prinzip mir den Private Key genommen und dann das hier in meiner lokalen Windows-Maschine gemacht:

ssh -i "C:\MyFolder\MyKey.pri" -N -T -L 1455:localhost:1455 ubuntu@myremoteserver.de

Anschließend konnte ich mich lokal mit der auf dem Remote-Server angezeigten URL in Codex anmelden.

Falls der Key zu viele Schreibrechte hat, und SSH sich weigert, diesen zu verwenden, mit so einem PowerShell-Skript einschränken:

$path = "C:\MyFolder\MyKey.pri"

# Eigentümer sicherstellen
takeown /F $path | Out-Null
icacls  $path /setowner $env:USERNAME | Out-Null

# Vererbung AUS + alle geerbten Einträge entfernen
icacls  $path /inheritance:r | Out-Null

# Alle typischen Gruppen explizit entfernen (inkl. Admins/System, um Konflikte auszuschließen)
icacls  $path /remove:g *S-1-1-0 "NT AUTHORITY\Authenticated Users" "BUILTIN\Users" "BUILTIN\Administrators" "NT AUTHORITY\SYSTEM" 2>$null | Out-Null

# Nur DIR selbst Vollzugriff geben
icacls  $path /grant:r "$($env:USERNAME):F" | Out-Null

# Optional: Markierung aus dem Internet entfernen (falls vorhanden)
Unblock-File -Path $path -ErrorAction SilentlyContinue

# Kontrolle
icacls $path

Dieses Skript z. B. als „C:\MyFolder\MyKey.ps1“ speichern und dann so ausführen auf der Befehlszeile:

powershell -ExecutionPolicy Bypass -File "C:\MyFolder\MyKey.ps1"

Anschließend dann nochmals den obigen ssh-Befehl. Wenn er erfolgreich ist, wird nichts ausgegeben.

Dann Codex auf dem Headless-Server starten, die URL dort heraus kopieren und auf dem Client, der den ssh-Befehl gerade ausführt, normal die URL in einem Browser einfügen und anmelden.

Alternativ kann man auch von einem Non-Headless-System, z. B. Windows, wo eine erfolgreiche Anmeldung in der Vergangenheit stattfand, die „auth.json“ auf das Headless-System, z. B. Ubuntu Server, kopieren.

(Es reicht auch aus, den Inhalt der Datei per Zwischenablage auf den Headless-Server in die Datei „auth.json“ zu kopieren und einzufügen, z. B. mit mcedit und dort dann Umschalt+Maus-Rechtsklick).

Wenn man auf dem Headless-System codex aufruft, dann liegt die zugehörige „auth.json“ im Home-Ordner des aktuellen Benutzers, also „~/.codex/auth.json“.

Wenn man auf dem Headless-System sudo codex aufruft, dann liegt die zugehörige „auth.json“ im Home-Ordner des root-Users, also zumeist „/root/.codex/auth.json“.

Seit Version 0.88.0 von Codex ist das wohl so gelöst:

Das klingt vielversprechend.