Uwierzytelnianie
ENCodex 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.
Co daje sprawdzone logowanie w Codex
Dział zatytułowany „Co daje sprawdzone logowanie w Codex”- 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.
Którą metodę logowania w Codex wybrać?
Dział zatytułowany „Którą metodę logowania w Codex wybrać?”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.
| Sytuacja | Użyj | Dlaczego |
|---|---|---|
| Masz plan ChatGPT Plus, Pro, Business, Edu lub Enterprise | Logowanie ChatGPT | Uż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 ChatGPT | Kod urządzenia | To samo konto co przy logowaniu ChatGPT; logowanie kończysz na dowolnym innym urządzeniu |
Job CI lub skrypt wywołujący codex exec | Klucz API w CODEX_API_KEY | Rozliczenie za użycie na koncie OpenAI Platform, bez osobistej sesji na współdzielonym runnerze |
| Chcesz oddzielić koszty Codex od planu ChatGPT | Klucz API | Jeden rachunek na organizację API i jej polityki |
| Firma korzysta z modeli przez AWS | Amazon Bedrock | Zobacz 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.
/usagei 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.
Zaloguj się do Codex i udowodnij, że działa
Dział zatytułowany „Zaloguj się do Codex i udowodnij, że działa”Uruchom w terminalu na maszynie z przeglądarką:
codex loginCodex 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.
Przekaż klucz ze zmiennej środowiskowej przez potok, żeby nie trafił do historii powłoki ani do linii poleceń:
printenv OPENAI_API_KEY | codex login --with-api-keyUtwórz klucz na koncie OpenAI Platform i trzymaj go w menedżerze haseł lub magazynie sekretów. Codex zapisuje klucz we własnym magazynie poświadczeń, więc zmienna środowiskowa jest potrzebna tylko raz.
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ć:
-
Zapytaj Codex, jaką metodę ma zapisaną. Kod wyjścia to
0po zalogowaniu i1bez logowania, więc skrypty mogą na nim polegać:Okno terminala codex login statusOczekuj
Logged in using ChatGPTalboLogged in using an API key -z kluczem zamaskowanym w środku. Komunikat trafia na stderr, więc przy przechwytywaniu dodaj2>&1. -
Uruchom diagnostykę. Wiersz
authpodaje źródło poświadczeń, także klucze ze zmiennych środowiskowych, którychcodex login statusnie widzi:Okno terminala codex doctor --summary -
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 -
Jeśli wybrałeś logowanie ChatGPT i potrzebujesz zadań w chmurze, potwierdź je z terminala.
codex cloud listwypisuje 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.
Gdzie Codex przechowuje poświadczenia?
Dział zatytułowany „Gdzie Codex przechowuje poświadczenia?”Decyduje klucz cli_auth_credentials_store w ~/.codex/config.toml. Domyślna wartość to file.
cli_auth_credentials_store = "auto"| Wartość | Gdzie trafiają poświadczenia | Kiedy jej użyć |
|---|---|---|
file (domyślnie) | $CODEX_HOME/auth.json | Poświadczenie ma przetrwać restart na maszynie bez keyringu |
keyring | macOS Keychain, Windows Credential Manager lub Linux Secret Service | Laptop ma odblokowany keyring i nie chcesz pliku z tokenami na dysku. Codex zgłasza błąd, gdy keyring jest niedostępny |
auto | Keyring, jeśli jest dostępny, w przeciwnym razie auth.json | Większość laptopów: keyring tam, gdzie działa, plik tam, gdzie nie |
ephemeral | Pamięć, tylko dla bieżącego procesu | Maszyny 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:
codex login --device-authCodex 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.
Przekieruj port callbacku, a potem zaloguj się w tej sesji:
# On your laptopssh -L 1455:localhost:1455 -L 1457:localhost:1457 user@remote
# In that SSH session, on the remote machinecodex loginOtwórz wypisany URL w przeglądarce na laptopie. Port 1457 to zapasowy port, którego Codex używa, gdy 1455 jest zajęty, więc przekierowanie obu obsługuje także ten przypadek.
Zaloguj się na laptopie, a potem skopiuj plik szyfrowanym kanałem:
ssh user@remote 'mkdir -p ~/.codex && chmod 700 ~/.codex'scp ~/.codex/auth.json user@remote:~/.codex/auth.jsonssh user@remote 'chmod 600 ~/.codex/auth.json && codex login status'To działa tylko z magazynem file, a zdalna maszyna trzyma od teraz twoją osobistą sesję. Rób tak wyłącznie na maszynach, do których dostęp masz tylko ty, i po skończonej pracy uruchom tam codex logout.
Uwierzytelnij Codex w CI bez osobistej sesji
Dział zatytułowany „Uwierzytelnij Codex w CI bez osobistej sesji”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.
name: codex-checkon: pull_requestpermissions: contents: readjobs: 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.
Wymuś jedną metodę logowania w całym zespole
Dział zatytułowany „Wymuś jedną metodę logowania w całym zespole”Dla jednej maszyny lub wspólnej konfiguracji bazowej przypnij metodę i workspace w config.toml:
# ~/.codex/config.toml, or a config your team distributesforced_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.
Gdy logowanie do Codex nie działa
Dział zatytułowany „Gdy logowanie do Codex nie działa”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.
Co dalej po zalogowaniu do Codex
Dział zatytułowany „Co dalej po zalogowaniu do Codex”Czy ten artykuł Ci pomógł?
Jedno kliknięcie, bez logowania.
Co z tym zrobisz?
Jak się czytało?
Co przeszkadzało? Możesz zaznaczyć kilka
Twoja rola?
Dzięki. Czytam każdą odpowiedź. Michał Jaskólski
Pomógł Ci ten artykuł?
Każde to jedno kliknięcie. Zamknij, kiedy chcesz.
bez logowania