Przejdź do głównej zawartości

Codex uwierzytelnia się logowaniem ChatGPT, które korzysta z limitu Codex w planie ChatGPT i jest wymagane dla Codex cloud, albo kluczem API OpenAI, rozliczanym za tokeny i dobrym do pracy lokalnej oraz w CI. Codex CLI domyślnie zapisuje poświadczenia w ~/.codex/auth.json, a codex login status i codex doctor potwierdzają, która metoda jest aktywna.

Zainstalowałeś Codex, uruchomiłeś codex, a ekran logowania proponuje ChatGPT, kod urządzenia i klucz API. Na laptopie wybór zajmuje sekundę. Na serwerze buildów bez przeglądarki, w kontenerze Dockera albo w jobie GitHub Actions zły wybór wychodzi dopiero później: krok CI pisze „Not logged in”, choć agent działa, albo codex cloud odmawia startu.

Ta strona jest dla dewelopera, który konfiguruje Codex na laptopie, zdalnej maszynie lub runnerze CI, oraz dla tech leada, który chce, żeby każda maszyna w zespole była zalogowana w ten sam, sprawdzalny sposób. Każde polecenie i komunikat poniżej sprawdziliśmy na Codex CLI 0.157.1 w dniu 2026-09-26. Najpierw zainstaluj Codex według przewodnika po instalacji.

  • Decyzję: logowanie ChatGPT czy klucz API, podjętą na podstawie rozliczeń i funkcji, które każda metoda odblokowuje.
  • Poświadczenia przechowywane tam, gdzie wymaga tego twoja polityka bezpieczeństwa: w pliku, w systemowym keyringu albo tylko w pamięci.
  • Działające logowanie na maszynach bez przeglądarki: w sesjach SSH, kontenerach i runnerach CI.
  • Sprawdzenie dwoma poleceniami, które pokazuje, jaka metoda jest aktywna, więc nikt nie musi zgadywać.
  • Regułę dla całego zespołu, która przypina metodę logowania i workspace ChatGPT.

Wybieraj według tego, kto płaci i jakich funkcji potrzebujesz. Ekran logowania w wersji 0.157.1 proponuje Sign in with ChatGPT, Sign in with Device Code, Provide your own API key oraz Amazon Bedrock dla organizacji, które kierują Codex przez AWS.

SytuacjaUżyjDlaczego
Masz plan ChatGPT Plus, Pro, Business, Edu lub EnterpriseLogowanie ChatGPTUżycie Codex idzie z limitu planu, a zadania w chmurze, /usage i zdalne sterowanie działają
Maszyna bez przeglądarki, a chcesz korzystać z planu ChatGPTKod urządzeniaTo samo konto co przy logowaniu ChatGPT; logowanie kończysz na dowolnym innym urządzeniu
Job CI lub skrypt wywołujący codex execKlucz API w CODEX_API_KEYRozliczenie za użycie na koncie OpenAI Platform, bez osobistej sesji na współdzielonym runnerze
Chcesz oddzielić koszty Codex od planu ChatGPTKlucz APIJeden rachunek na organizację API i jej polityki
Firma korzysta z modeli przez AWSAmazon BedrockZobacz przewodnik po zarządzaniu w firmie

Cennik OpenAI (odczyt 2026-10-12) wymienia też plany Free i Go, dla których podaje tylko „GPT-6 Luna at Standard speed in the desktop app, subject to rollout”; tabela planów na stronie kredyty, limity użycia i optymalizacja kosztów Codeksa wymienia każdy plan i to, co obejmuje. Dla klucza API strona pisze „No cloud-based features”. Od 0.161.0 (2026-10-07) wykrywanie modeli dla kluczy API jest domyślnie włączone (api_key_model_discovery jest stabilne i włączone w 0.162.1), więc pipeline logujący się kluczem API może zachowywać się inaczej niż starsza przypięta wersja; po aktualizacji uruchom jego test dymny ponownie.

Klucz API nie odblokowuje wszystkiego. W Codex CLI 0.157.1 te funkcje odrzucają uwierzytelnianie kluczem i wymagają logowania ChatGPT:

  • codex cloud („Not signed in. Please run ‘codex login’ to sign in with ChatGPT”).
  • Zdalne sterowanie („remote control requires ChatGPT authentication; API key auth is not supported”).
  • Zdalny katalog pluginów i pluginy udostępnione.
  • /usage i odczyty limitów w interfejsie terminalowym.

Dostępny model zależy od planu lub organizacji API, a nie od ekranu logowania. Hub modeli pokazuje, na czym Codex działa domyślnie i ile kosztuje każdy model.

Uruchom w terminalu na maszynie z przeglądarką:

Okno terminala
codex login

Codex uruchamia lokalny serwer callbacku na 127.0.0.1:1455, otwiera przeglądarkę i po zalogowaniu zapisuje zwrócone tokeny. Uruchomienie codex bez poświadczeń pokazuje ten sam wybór w interfejsie terminalowym.

Aplikacja desktopowa i rozszerzenie IDE mają logowanie na własnych ekranach. CLI i rozszerzenie IDE czytają poświadczenia z tego samego katalogu CODEX_HOME (domyślnie ~/.codex), więc jedno logowanie obsługuje oba, dopóki CODEX_HOME jest ten sam.

Teraz sprawdź wynik, zamiast go zakładać:

  1. Zapytaj Codex, jaką metodę ma zapisaną. Kod wyjścia to 0 po zalogowaniu i 1 bez logowania, więc skrypty mogą na nim polegać:

    Okno terminala
    codex login status

    Oczekuj Logged in using ChatGPT albo Logged in using an API key - z kluczem zamaskowanym w środku. Komunikat trafia na stderr, więc przy przechwytywaniu dodaj 2>&1.

  2. Uruchom diagnostykę. Wiersz auth podaje źródło poświadczeń, także klucze ze zmiennych środowiskowych, których codex login status nie widzi:

    Okno terminala
    codex doctor --summary
  3. Do zgłoszenia onboardingowego lub sprawy w supporcie zapisz raport z zamaskowanymi sekretami i go dołącz:

    Okno terminala
    codex doctor --json > codex-doctor.json
  4. Jeśli wybrałeś logowanie ChatGPT i potrzebujesz zadań w chmurze, potwierdź je z terminala. codex cloud list wypisuje zadania w chmurze bez otwierania TUI, a lista zadań, nawet pusta, dowodzi, że chmura akceptuje twoje konto:

    Okno terminala
    codex cloud list

Tech lead zatwierdza plik codex doctor --json, a nie zrzut ekranu z logowania: zawiera wiersz auth i wersję, a raport maskuje sekrety.

Decyduje klucz cli_auth_credentials_store w ~/.codex/config.toml. Domyślna wartość to file.

~/.codex/config.toml
cli_auth_credentials_store = "auto"
WartośćGdzie trafiają poświadczeniaKiedy jej użyć
file (domyślnie)$CODEX_HOME/auth.jsonPoświadczenie ma przetrwać restart na maszynie bez keyringu
keyringmacOS Keychain, Windows Credential Manager lub Linux Secret ServiceLaptop ma odblokowany keyring i nie chcesz pliku z tokenami na dysku. Codex zgłasza błąd, gdy keyring jest niedostępny
autoKeyring, jeśli jest dostępny, w przeciwnym razie auth.jsonWiększość laptopów: keyring tam, gdzie działa, plik tam, gdzie nie
ephemeralPamięć, tylko dla bieżącego procesuMaszyny współdzielone lub krótkotrwałe, na których nic nie może trafić na dysk

Zaloguj się do Codex przez SSH, w kontenerze lub na serwerze bez interfejsu graficznego

Dział zatytułowany „Zaloguj się do Codex przez SSH, w kontenerze lub na serwerze bez interfejsu graficznego”

Logowanie w przeglądarce wymaga, żeby przeglądarka dotarła do serwera callbacku Codex na localhost:1455. Na zdalnej maszynie to niemożliwe, więc użyj jednej z tych metod.

Uruchom na zdalnej maszynie:

Okno terminala
codex login --device-auth

Codex wypisuje URL i jednorazowy kod. Otwórz URL na dowolnym urządzeniu, zaloguj się i wpisz kod. Kod wygasa po 15 minutach. Jeśli Codex zgłasza, że logowanie kodem urządzenia nie jest włączone, użyj przekierowania portów SSH.

Runner CI nigdy nie powinien trzymać sesji ChatGPT dewelopera. Przekaż codex exec klucz API przez zmienną środowiskową CODEX_API_KEY, pobraną z magazynu sekretów platformy CI, i nie zapisuj niczego na dysku. Przewodnik po CI/CD z Codex omawia akcję GitHub openai/codex-action; poniżej jest wzorzec na poziomie powłoki, na którym ona bazuje.

.github/workflows/codex-check.yml
name: codex-check
on: pull_request
permissions:
contents: read
jobs:
codex:
# Skip pull requests from forks: they get no secrets
if: github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
persist-credentials: false
- run: npm install -g @openai/codex@0.157.1
- name: Check Codex sees a credential
env:
CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }}
run: |
codex doctor --summary --no-color > doctor.txt || true
grep -E '✓ auth' doctor.txt
- name: Read-only review
env:
CODEX_API_KEY: ${{ secrets.CODEX_API_KEY }}
run: |
codex -c cli_auth_credentials_store=ephemeral \
-c default_permissions=":read-only" \
exec --ephemeral \
"Summarize the risk in this pull request's diff against origin/main. Do not modify files."

on: pull_request nie przekazuje sekretów repozytorium do pull requestów z forków i właśnie o to chodzi: kod z forka nigdy nie działa obok twojego klucza. Linia if: pomija pull requesty z forków w całości, więc job działa tylko dla gałęzi wypchniętych przez osoby, które już mają prawo zapisu. Nie zmieniaj wyzwalacza na pull_request_target, żeby dać forkom sekrety. Job ufa gałęziom osób z prawem zapisu; taka gałąź nadal może zmienić projektową konfigurację .codex/ i AGENTS.md, więc krok agenta zostaw w trybie tylko do odczytu i wymagaj review przed scaleniem zmian w workflow lub w .codex/. --ephemeral trzyma sesję poza dyskiem runnera, a cli_auth_credentials_store=ephemeral trzyma poświadczenia tylko w pamięci. Krok z doctor ignoruje kod wyjścia, bo inne wiersze, na przykład osiągalność sieci, mogą na runnerze nie przejść, choć uwierzytelnianie działa. Klucz przekazany w ten sposób sprawdzaj przez codex doctor, a nie codex login status: codex login status zgłasza Not logged in dla kluczy ze zmiennych środowiskowych, a wiersz auth w doctor pokazuje auth is provided by environment. Wiersz auth potwierdza tylko, że klucz jest ustawiony, a nie że OpenAI go akceptuje; na unieważnionym lub błędnie wpisanym kluczu zawodzi dopiero krok exec. Krok agenta wybiera wbudowany profil uprawnień :read-only (beta), który OpenAI zaleca zamiast starszej flagi --sandbox; nie dodawaj obok niego --sandbox, bo oba systemy się nie łączą. Zobacz konfigurację Codex.

Lista wymagań na końcu to twoje kryterium akceptacji: każde wymaganie wskazuje linię, więc sprawdzasz siedem linii, a nie cały plik.

Dla jednej maszyny lub wspólnej konfiguracji bazowej przypnij metodę i workspace w config.toml:

# ~/.codex/config.toml, or a config your team distributes
forced_login_method = "chatgpt" # or "api"
forced_chatgpt_workspace_id = "00000000-0000-0000-0000-000000000000"

Jeśli zapisane poświadczenie nie pasuje, Codex wylogowuje użytkownika i podaje powód, na przykład „ChatGPT login is required, but an API key is currently being used. Logging out.”. Użytkownik może edytować własny config.toml, więc reguły dla całej organizacji administratorzy ustawiają przez allowed_login_methods i allowed_chatgpt_workspaces w zarządzanym pliku requirements.toml. Konfigurację zarządzaną opisuje przewodnik po zarządzaniu w firmie.

Przeglądarka nie wraca do terminala (WSL, SSH, kontenery). Przeglądarka nie dociera do localhost:1455 na maszynie z Codex. Przerwij i użyj codex login --device-auth albo opisanego wyżej przekierowania SSH.

„Port … is already in use”. Oba porty callbacku, 1455 i zapasowy 1457, są zajęte, zwykle przez stare procesy codex login. Codex próbował już anulować poprzednie logowanie. Zamknij terminale z trwającym logowaniem (albo zakończ proces trzymający port) i uruchom codex login ponownie.

„device code login is not enabled for this Codex server”. Logowanie kodem urządzenia jest wyłączone dla tego konta lub serwera. Użyj przekierowania portów SSH albo zapytaj administratora workspace’u, czy to ustawienie jest dla ciebie dostępne.

„device auth timed out after 15 minutes”. Uruchom ponownie codex login --device-auth i wpisz nowy kod od razu.

„Your access token could not be refreshed”. Sesja wygasła albo zalogowałeś się gdzie indziej na inne konto. Uruchom codex logout, a potem codex login.

Codex wylogowuje cię przy starcie komunikatem „ChatGPT login is required, but an API key is currently being used”. Reguła forced_login_method nie pasuje do twoich poświadczeń. Zaloguj się metodą, której wymaga reguła. Zmieniaj regułę tylko wtedy, gdy jest twoja.

„API key login is disabled by this workspace”. Administrator dopuszcza tylko logowanie ChatGPT. Uruchom codex login i wybierz ChatGPT.

Magazyn keyring nie działa na linuksowym serwerze bez interfejsu graficznego. Nie działa tam Secret Service, a keyring zgłasza błąd zamiast przejść na plik. Ustaw cli_auth_credentials_store = "auto" albo "ephemeral" na maszynach współdzielonych.

W jednym terminalu zalogowany, w drugim „Not logged in”. Obie powłoki mają różne CODEX_HOME. Uruchom echo "$CODEX_HOME" w obu i ustaw tę samą wartość albo usuń zmienną, żeby używać ~/.codex.

codex login status nie przechodzi w CI, choć job działa. Klucz pochodzi z CODEX_API_KEY, którego login status nie raportuje. Sprawdzaj przez codex doctor --summary, jak w przykładzie CI.

codex cloud pisze „Not signed in”, choć praca lokalna działa. Używasz klucza API. Zadania w chmurze wymagają logowania ChatGPT: uruchom codex login i wybierz ChatGPT.

Błędy po zalogowaniu, takie jak limity czy odmowy sandboksa, opisuje odzyskiwanie po błędach w Codex.

Czy ten artykuł Ci pomógł?

Jedno kliknięcie, bez logowania.

wcale bardzo