SSD Nodes Learn Hosting plans →
Przewodniki Matt ConnorAutor: Matt Connor · Zaktualizowano 2026-09-13

Claude Code: logowanie przez subskrypcję czy klucz API?

Subskrypcja Claude Pro oraz klucz API Anthropic to odrębne systemy rozliczeń. Sprawdź, jak zweryfikować bieżącą sesję komendą status i zmienić przypisane poświadczenia.

Z jakich poświadczeń korzysta sesja Claude Code?

Logowanie do Claude Code odbywa się na jeden z dwóch sposobów. Użytkownik loguje się za pomocą konta subskrypcyjnego z serwisu claude.ai lub uwierzytelnia się w organizacji Anthropic Console, co powoduje rozliczanie każdego tokena z salda API (application programming interface) tej organizacji. Należy uruchomić /status wewnątrz aktywnej sesji, aby sprawdzić, który tryb jest aktywny: karta Status wyświetla wiersz Login method dla konta, za pomocą którego dokonano logowania, natomiast dodatkowy wiersz API key pojawia się, gdy poświadczenia są dostarczane przez klucz API.

Kwestia tego, czy narzędzie jest objęte posiadanym planem, jest osobnym zagadnieniem, wyjaśnionym w czy Claude Code jest zawarte w subskrypcji Claude Pro, natomiast mechanika działania kluczy w odniesieniu do Claude API została opisana w jak działa uwierzytelnianie Claude API. Poniżej przedstawiono informacje, których te dwa źródła nie obejmują: które poświadczenia zostały faktycznie wybrane przez sesję oraz w jaki sposób je zmienić.

Poniższe zachowanie wynika z dokumentacji uwierzytelniania Claude Code firmy Anthropic, odczytanej w dniu 31 sierpnia 2026 r. Claude Code jest często aktualizowane, a wiele z tych zachowań wymaga określonej wersji minimalnej, dlatego przed stwierdzeniem awarii maszyny należy uruchomić claude --version.

Dwa konta mogące współdzielić jeden adres e-mail

Konto w serwisie claude.ai oraz konto w Claude Console pod adresem platform.claude.com to odrębne konta. Mogą być powiązane z tym samym adresem e-mail, pozostając przy tym niezależnymi danymi logowania z osobnymi saldami i przynależnością do różnych organizacji. Utworzenie jednego konta nie powoduje automatycznego utworzenia drugiego. Opłacenie planu Max nie zasila organizacji w Console, a doładowanie środków w organizacji Console nie wpływa na posiadany plan subskrypcji.

Saldami zarządza się inaczej, ponieważ różnią się modele rozliczeniowe. Logowanie w ramach subskrypcji korzysta z limitu użycia przypisanego do planu, który odnawia się w cyklach pięciogodzinnych oraz tygodniowych; limit ten jest współdzielony z usługą Claude w przeglądarce. Dane logowania do Console są rozliczane za każdy token w ramach organizacji, a wiążące dane o zużyciu znajdują się na stronie użycia w Console. Różnice w kosztach przy rzeczywistej pracy są przedmiotem artykułu płatność za tokeny a płatność za subskrypcję.

Jeden z typów kont w ogóle nie obsługuje ścieżki subskrypcyjnej. Anthropic wymienia konta, za pomocą których można się zalogować jako użytkownik subskrypcji Pro lub Max, użytkownik Claude for Teams lub Enterprise, użytkownik Claude Console oraz użytkownik dostawcy chmurowego. Bezpłatne konto claude.ai nie znajduje się na tej liście, więc użytkownik korzystający z planu darmowego nie posiada danych logowania subskrypcyjnego, a zakres funkcjonalności darmowego planu Claude nie obejmuje narzędzi wiersza poleceń. Pozostałą dostępną ścieżką jest organizacja w Console z kredytami API, co stanowi płatne konto o innej charakterystyce.

Ścieżka pierwsza: logowanie za pomocą subskrypcji Claude

Uruchom claude w katalogu projektu. Przy pierwszym uruchomieniu narzędzie otwiera okno przeglądarki, aby umożliwić zalogowanie się na konto claude.ai posiadające aktywny plan.

claude

Na serwerze proces ten przebiega inaczej. Jeśli przeglądarka nie otworzy się automatycznie, naciśnij c, aby skopiować adres URL logowania do schowka, a następnie wklej go w przeglądarce na swoim komputerze lokalnym. Jeśli przeglądarka wyświetli kod logowania zamiast przekierowania z powrotem do terminala, wklej ten kod w terminalu, gdy pojawi się stosowny monit. Ten drugi przypadek jest standardowy w sesjach SSH (secure shell), WSL2 oraz wewnątrz kontenerów, ponieważ przeglądarka nie ma dostępu do lokalnego serwera wywołania zwrotnego (callback server), który Claude Code uruchomił na maszynie zdalnej.

Po zakończeniu logowania zweryfikuj jego poprawność, zamiast zakładać, że przebiegło pomyślnie. Rozpocznij sesję i uruchom /status. Karta Status wyświetla metodę logowania oraz zapisaną nazwę organizacji i adres e-mail. /login uruchamia proces logowania ponownie dla innego konta, a /logout usuwa zapisane poświadczenia. Wylogowanie resetuje również stan konfiguracji pierwszego uruchomienia, dzięki czemu kolejne wywołanie claude ponownie przeprowadzi użytkownika przez proces wdrażania.

Znajomość lokalizacji poświadczeń jest istotna podczas przebudowy serwera lub przekazywania go innej osobie:

  • Linux: ~/.claude/.credentials.json, uprawnienia pliku 0600.
  • macOS: zaszyfrowany Keychain. Gdy Keychain odrzuci zapis (co zdarza się, gdy jest zablokowany w sesji SSH), Claude Code używa tego samego pliku 0600.
  • Windows: %USERPROFILE%\.claude\.credentials.json, dostęp ograniczony do użytkownika poprzez kontrolę dostępu katalogu profilu.
  • Każda platforma ze zmienną CLAUDE_CONFIG_DIR: plik przenoszony jest do tego katalogu, a wpis w Keychain macOS jest z nim powiązany, więc sesja uruchomiona z inną wartością CLAUDE_CONFIG_DIR odczytuje inne poświadczenia.

Claude Code zarządza tym plikiem za pomocą /login oraz /logout. Ręczna edycja pliku nie jest wspieraną metodą przełączania kont.

Ścieżka druga: uwierzytelnianie w organizacji Console

Dostęp do Console rozpoczyna się od administratora. Zaprasza on użytkownika z poziomu Console w sekcji Settings, następnie Members, a potem Invite. Administrator przypisuje również rolę: rola Claude Code pozwala tworzyć wyłącznie klucze API Claude Code, podczas gdy rola Developer umożliwia tworzenie dowolnych kluczy. Następnie w wierszu poleceń /login wybiera się konto Anthropic Console.

Począwszy od Claude Code w wersji 2.1.242 istnieją dwie ścieżki Console, które przechowują różne dane. Logowanie za pomocą konta Console zachowuje token OAuth (open authorisation) z sesji przeglądarki i zapisuje go jako profil Anthropic, nie tworząc przy tym żadnego klucza API. Claude Code samodzielnie odświeża to logowanie, a w przypadku niepowodzenia odświeżenia żądania kończą się błędem do momentu ponownego zalogowania. Utworzenie klucza API, który w wierszu poleceń oznaczono jako legacy, generuje klucz Console i zapisuje go wraz z pozostałymi poświadczeniami. Klucz statyczny nigdy nie wymaga odświeżenia, więc działa do momentu jego unieważnienia. Jest to przydatne na serwerze budowania, lecz stanowi zagrożenie na laptopie.

Przed rozpoczęciem logowania do Console bez użycia klucza należy usunąć zmienną ANTHROPIC_API_KEY. Gdy ta zmienna jest ustawiona, Claude Code całkowicie pomija monit logowania i prosi o zatwierdzenie znalezionego klucza.

Wybór nie zawsze jest dostępny. Claude Code tworzy klucz bez pytania, gdy sesja jest uruchamiana u dostawcy chmurowego, gdy jakikolwiek plik ustawień definiuje forceLoginOrgUUID lub przypisuje forceLoginMethod do "claudeai" lub "console", albo gdy na maszynie istnieje zarządzane źródło ustawień, którego Claude Code nie może odczytać. Są to decyzje administratora, więc jeśli opcja bezkluczowa nigdy się nie pojawia, należy skontaktować się z osobą zarządzającą infrastrukturą. /status wyświetla również linię Setting sources z nazwami wszystkich plików ustawień załadowanych przez sesję, a także wskazuje zarządzane źródło, jeśli ma ono zastosowanie.

Przy pierwszym uwierzytelnieniu Claude Code w organizacji Console, Console tworzy dla niego obszar roboczy o nazwie "Claude Code". Obszar ten istnieje w celu śledzenia wydatków Claude Code w jednym miejscu i nie można w nim tworzyć kluczy API.

Dlaczego ANTHROPIC_API_KEY ma pierwszeństwo po zalogowaniu

Claude Code nigdy nie pyta, które poświadczenia użytkownik preferuje. Narzędzie sprawdza źródła w ustalonej kolejności i wybiera pierwsze znalezione. Zgodnie z dokumentacją z sierpnia 2026, kolejność ta wygląda następująco:

  1. Poświadczenia dostawcy chmury, gdy ustawione są CLAUDE_CODE_USE_BEDROCK, CLAUDE_CODE_USE_VERTEX lub CLAUDE_CODE_USE_FOUNDRY.
  2. ANTHROPIC_AUTH_TOKEN, wysyłany jako nagłówek Authorization: Bearer, dla bramek uwierzytelniających się za pomocą tokenów typu bearer.
  3. ANTHROPIC_API_KEY, wysyłany jako nagłówek X-Api-Key.
  4. Wynik skryptu apiKeyHelper wskazanego w pliku ustawień.
  5. CLAUDE_CODE_OAUTH_TOKEN, długoterminowy token z claude setup-token.
  6. Poświadczenia profilu Anthropic oraz federacyjne.
  7. Poświadczenie subskrypcji zapisane przez /login.

Logowanie do subskrypcji znajduje się na ostatnim miejscu. Zatem zmienna ANTHROPIC_API_KEY wyeksportowana w dowolnym miejscu środowiska procesu ma wyższy priorytet niż konto, na które zalogowano się w aplikacji, co powoduje, że sesja obciąża organizację w Console, podczas gdy użytkownik zakłada, że korzysta z własnego planu. Mechanizm działa poprawnie. Kolejność jest zgodna z dokumentacją, dlatego system nie wyświetla ostrzeżeń.

Dwa szczegóły sprawiają, że łatwo to przeoczyć. W sesji interaktywnej Claude Code pyta raz, czy użyć znalezionego klucza i zapamiętuje odpowiedź, więc wybór dokonany miesiąc temu nadal obowiązuje. W trybie nieinteraktywnym z -p nie ma żadnego monitu, a klucz jest używany zawsze, gdy jest obecny. -p to tryb, w którym uruchamiane są zadania cron lub kroki CI (ciągłej integracji), więc to właśnie w zadaniach wykonywanych bez nadzoru niewłaściwe poświadczenia pozostają najdłużej niezauważone.

Wewnątrz sesji dostępna jest szybka weryfikacja wizualna. Gdy ustawiona jest zmienna ANTHROPIC_API_KEY, /config wyświetla przełącznik "Use custom API key". Przełącznik ten istnieje tylko wtedy, gdy zmienna jest ustawiona, więc jego brak oznacza, że środowisko jest czyste.

Lokalizowanie niepożądanego klucza na serwerze

Wyeksportowany klucz może znajdować się w wielu miejscach poza profilem powłoki:

  • ~/.bashrc, ~/.bash_profile, ~/.profile lub ~/.zshrc, odczytywane przy każdym logowaniu do powłoki.
  • Jednostka systemd, poprzez Environment= lub EnvironmentFile=, dla każdego procesu uruchamianego jako usługa.
  • Serwer tmux, który przechowuje kopię środowiska, w którym został uruchomiony. Panel otwarty dzisiaj może dziedziczyć zmienną usuniętą z profilu w zeszłym tygodniu, ponieważ serwer działa od czasu sprzed edycji.
  • Obraz kontenera lub definicja zadania CI, gdzie zmienna jest ustawiona poza jakimkolwiek plikiem dostępnym do odczytu z poziomu powłoki.
  • Blok env w pliku ustawień Claude Code, który jest zwykłym kluczem ustawień i podlega standardowej hierarchii ważności.

Należy sprawdzić te miejsca przed podjęciem dalszych działań:

[ -n "$ANTHROPIC_API_KEY" ] && echo "ANTHROPIC_API_KEY is set" || echo "not set"
env | grep -E '^(ANTHROPIC_|CLAUDE_CODE_)' | cut -d= -f1
grep -n 'ANTHROPIC_API_KEY' ~/.bashrc ~/.bash_profile ~/.profile ~/.zshrc 2>/dev/null
tmux show-environment 2>/dev/null | grep ANTHROPIC
grep -n 'ANTHROPIC_API_KEY\|apiKeyHelper' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>/dev/null

Drugie polecenie celowo przesyła dane przez cut, aby wyświetlić nazwy zmiennych bez ujawniania wartości sekretów na ekranie, który może być udostępniany lub nagrywany. Pierwsze polecenie rozstrzyga kwestię: jeśli wskazuje, że zmienna jest ustawiona, kolejna instancja claude uruchomiona z tej powłoki użyje tego klucza. Brak danych wyjściowych ze wszystkich pięciu źródeł oznacza, że poświadczenie środowiskowe nie istnieje, więc sesja uruchomiona w tym miejscu korzysta z poświadczenia /login.

Dodaj systemctl cat your-unit.service | grep -i environment dla każdej usługi uruchamiającej Claude Code, ponieważ plik jednostki ustawia własne środowisko i nie odczytuje profilu powłoki użytkownika.

Przełączanie sesji między różnymi poświadczeniami

Aby powrócić do swojej subskrypcji:

unset ANTHROPIC_API_KEY
[ -n "$ANTHROPIC_API_KEY" ] && echo "still set" || echo "clear"
claude

Należy oczekiwać clear, a następnie uruchomić /status w nowej sesji i potwierdzić, że wiersz API key zniknął. Usunięcie zmiennej w powłoce nie wpływa na uruchomiony proces Claude Code, ponieważ proces zachowuje środowisko, z którym został zainicjowany. Należy zrestartować sesję.

Następnie należy usunąć polecenie export z pliku, w którym zostało ustawione, w przeciwnym razie kolejna powłoka logowania przywróci to ustawienie. Wewnątrz tmux polecenie tmux set-environment -u ANTHROPIC_API_KEY czyści zmienną dla paneli otwartych po tym momencie w sesji, podczas gdy panele już otwarte zachowują własną kopię.

Aby przełączyć się w drugą stronę, należy ustawić ANTHROPIC_API_KEY w środowisku lub uruchomić /login i wybrać konto Console. Aby całkowicie wyczyścić zapisane logowanie, należy uruchomić /logout. Po bezkluczowym logowaniu do Console, polecenie /logout usuwa i unieważnia poświadczenie zapisane podczas tego logowania.

Jeśli /status nadal nie wykazuje oczekiwanego stanu, należy uruchomić claude doctor. Wyświetla ono listę wpisów ustawień odrzuconych przez Claude Code, co pozwala zidentyfikować plik ustawień, który nie został poprawnie przetworzony i w rezultacie nie został zastosowany.

Uwierzytelnianie w środowiskach bez przeglądarki

claude setup-token uruchamia ten sam proces autoryzacji w przeglądarce co /login i wyświetla w terminalu roczny token OAuth.

claude setup-token

Token nie jest nigdzie zapisywany, dlatego należy go skopiować w momencie wyświetlenia. Należy ustawić go jako CLAUDE_CODE_OAUTH_TOKEN na maszynie, która go wymaga. Token uwierzytelnia subskrypcję, więc wymaga planu Pro, Max, Team lub Enterprise i pozwala wyłącznie na wysyłanie zapytań do modelu. Tryb bare go nie odczytuje, więc skrypt przekazujący --bare wymaga zamiast tego ANTHROPIC_API_KEY lub apiKeyHelper.

W tym przypadku również występuje problem pierwszeństwa. Jeśli CLAUDE_CODE_OAUTH_TOKEN znajduje się w profilu powłoki, uruchomienie /login przełącza bieżącą sesję na nowe logowanie, a każda kolejna sesja odczytuje zmienną, dopóki nie zostanie ona usunięta.

Jeśli organizacja przeprowadza wnioskowanie przez Amazon Bedrock, Google Cloud lub Microsoft Foundry, te poświadczenia znajdują się na szczycie hierarchii i logowanie przez przeglądarkę w ogóle nie następuje. Konfiguracja tego procesu to osobne zadanie, opisane w uruchamianie Claude Code z wykorzystaniem Bedrock lub Vertex.

Długotrwałe sesje na serwerach VPS (virtual private server) to miejsce, w którym te problemy się koncentrują, ponieważ powłoka, która je zainicjowała, mogła zostać skonfigurowana miesiące temu i od tego czasu nie była restartowana. Uruchamianie Claude Code na VPS wewnątrz tmux omawia kwestie sesji w takiej konfiguracji.

Weryfikacja faktycznego zużycia dla poszczególnych poświadczeń

Po zalogowaniu do subskrypcji, /usage wyświetla paski zużycia planu oraz szczegółowe zestawienie wykorzystania limitów. Wartość pieniężna w bloku Session jest obliczana lokalnie na podstawie liczby tokenów według cen cennikowych, dlatego należy ją traktować jako szacunek dla użytkowników API, a nie jako fakturę. Subskrybenci powinni kierować się paskami zużycia, a nie kwotami w dolarach.

W przypadku poświadczeń Console, wiążące dane znajdują się w panelu Console: na stronie użycia w celu sprawdzenia wydatków oraz w pulpicie nawigacyjnym Claude Code dla statystyk poszczególnych członków. Żadna informacja wyświetlona w terminalu nie stanowi podstawy do rozliczeń.

Jeśli paski planu nie zmieniają się podczas pracy, oznacza to, że pierwszeństwo ma poświadczenie środowiskowe. Ten objaw jest najbardziej wiarygodnym sygnałem użycia niewłaściwego poświadczenia, a śledzenie wydatków sesji Claude Code zawiera szczegółowe informacje na ten temat. Jeśli paski zmieniają się, a następnie zatrzymują, oznacza to osiągnięcie limitu planu, co wyjaśnia artykuł jak działają limity użycia Claude i okna resetowania.

Tryby awarii i diagnostyka

Wszystko działa, ale zużycie planu nie zmienia się. Aktywne są poświadczenia środowiskowe. /status wyświetla wiersz API key, a powyższa weryfikacja powłoki potwierdza obecność zmiennej.

Żądania kończą się niepowodzeniem, mimo aktywnej subskrypcji. Klucz należący do wyłączonej lub wygasłej organizacji w Console ma wyższy priorytet niż bieżące logowanie. Uruchom unset ANTHROPIC_API_KEY, rozpocznij nową sesję i ponownie sprawdź /status. Jeśli błąd wskazuje na nieprawidłowy klucz API, naprawa błędu nieprawidłowego klucza API w Claude Code szczegółowo omawia ten przypadek, wyjaśniając również, dlaczego ponowne uruchomienie /login nie rozwiązuje problemu.

Ostrzeżenie przy starcie o wygasającym logowaniu. Nowsze wersje wyświetlają ostrzeżenie, gdy poświadczenie /login wygasa w ciągu trzech dni, a /status pokazuje wówczas wiersz logowania jako wygasły, wraz z zapisaną nazwą organizacji i adresem e-mail. Uruchom /login, aby odnowić dostęp. Ostrzeżenie nie blokuje żądań, dlatego łatwo je zignorować, dopóki sesja działająca w tle nie przestanie przetwarzać zadań.

Narzędzie pomocnicze apiKeyHelper działa wolno lub ulega awarii. Claude Code domyślnie uruchamia narzędzie pomocnicze co pięć minut (częstotliwość można dostosować za pomocą CLAUDE_CODE_API_KEY_HELPER_TTL_MS) i wyświetla powiadomienie na pasku zachęty, gdy wykonanie trwa dłużej niż dziesięć sekund. Narzędzie, które nie zwraca klucza z powodu błędu lub przekroczenia czasu oczekiwania, powoduje niepowodzenie żądań w ciągu trzech prób.

Właściwe poświadczenie, niewłaściwa organizacja. Jeden adres e-mail może należeć do dwóch organizacji. /status wskazuje organizację, do której nastąpiło uwierzytelnienie, dlatego należy sprawdzić ten wiersz, zamiast zakładać, do której organizacji przypisano sesję.

FAQ

Jak sprawdzić, z którego konta korzysta obecnie Claude Code?

Uruchom /status w sesji. Karta Status wyświetla wiersz Login method dla konta, na które zalogowano się, oraz dodaje wiersz API key, gdy poświadczenia dostarcza klucz API. Wiersz Profile zastępuje wiersz logowania, gdy wybrano profil Anthropic lub poświadczenia federacyjne. Poza sesją sprawdzenie, czy zmienna ANTHROPIC_API_KEY jest ustawiona w powłoce, informuje o istnieniu poświadczeń środowiskowych, które mają wyższy priorytet niż logowanie.

Dlaczego subskrypcja Claude Pro lub Max jest ignorowana?

Ponieważ poświadczenia środowiskowe mają wyższy priorytet. Claude Code przyjmuje pierwsze znalezione poświadczenia zgodnie ze stałą kolejnością, a poświadczenia subskrypcji /login znajdują się na końcu, poniżej zmiennych dostawcy chmury: ANTHROPIC_AUTH_TOKEN, ANTHROPIC_API_KEY, apiKeyHelper oraz CLAUDE_CODE_OAUTH_TOKEN. Uruchom unset ANTHROPIC_API_KEY, rozpocznij nową sesję i potwierdź za pomocą /status. Następnie usuń polecenie export z profilu powłoki, jednostki systemd, środowiska tmux lub definicji kontenera, w której zostało ustawione, w przeciwnym razie powróci przy następnym logowaniu do powłoki.

Czy mogę używać Claude Code z darmowym kontem Claude?

Nie. Typy kont wymienione przez Anthropic do logowania to subskrypcja Pro lub Max, licencja Claude for Teams lub Enterprise, konto Claude Console oraz dostawca chmury. Darmowe konto claude.ai nie należy do tej grupy, więc nie posiada poświadczeń subskrypcji do zapisania. Płatną alternatywą dla subskrypcji jest organizacja w Claude Console z kredytami API, rozliczana za token, co stanowi oddzielne konto, nawet jeśli używa tego samego adresu e-mail.

Czy moje konto claude.ai i konto Console współdzielą saldo?

Nie. Są to oddzielne konta z oddzielnym rozliczaniem, nawet jeśli oba używają tego samego adresu e-mail. Wykorzystanie subskrypcji pobiera środki z limitu planu, który jest współdzielony z Claude w przeglądarce i resetuje się w oknie pięciogodzinnym oraz tygodniowym. Wykorzystanie w Console jest rozliczane za token na rzecz organizacji i widoczne na stronie użycia w Console. Dodanie środków do jednego nie wpływa na drugie.

Jak uwierzytelnić Claude Code na serwerze bez interfejsu graficznego?

Dostępne są dwie opcje. Uruchom claude przez SSH i dokończ logowanie w przeglądarce na własnym komputerze: naciśnij c, aby skopiować adres URL, zaloguj się tam, a następnie wklej kod z powrotem do terminala, jeśli przeglądarka wyświetli go zamiast przekierowania. Alternatywnie uruchom claude setup-token na maszynie z przeglądarką, skopiuj wygenerowany roczny token i ustaw go jako CLAUDE_CODE_OAUTH_TOKEN na serwerze. Ten token wymaga planu Pro, Max, Team lub Enterprise i może wykonywać tylko żądania do modelu, więc skrypt używający --bare wymaga klucza API lub apiKeyHelper.