Über die Authentifizierung in GitHub CLI
Die meisten GitHub CLI Befehle führen in Ihrem Namen Aktionen auf GitHub aus, daher müssen Sie sich authentifizieren, bevor Sie sie verwenden können. GitHub CLI unterstützt verschiedene Möglichkeiten zur Authentifizierung, je nachdem, ob Sie interaktiv an Ihrem Computer arbeiten oder Befehle in einem Skript oder in einer automatisierten Umgebung ausführen.
- Für die interaktive Verwendung melden Sie sich einmal mit
gh auth loginan, und GitHub CLI speichert Ihre Anmeldeinformationen für Sie. - Stellen Sie für Skripts und Automatisierung ein Token über eine Umgebungsvariable bereit.
- Verwenden Sie für Workflows das von GitHub Actions bereitgestellte Token.
Sie können sich auch für ablaufende Anmeldedaten entscheiden, die automatisch aktualisiert werden, wodurch das Risiko eines kompromittierten Tokens verringert wird.
Interaktiv anmelden
-
Um sich auf Ihrem Computer zu authentifizieren, führen Sie den folgenden Befehl über Ihr Terminal aus.
gh auth login -
Folgen Sie den Anweisungen auf dem Bildschirm, um die Anmeldung abzuschließen. Wenn Sie gefragt werden, wo Sie GitHub verwenden:
- Wenn Sie GitHub.com verwenden, wählen Sie GitHub.com.
- Wenn Sie einen anderen Host verwenden, wählen Sie Sonstige aus und geben Sie dann Ihren Hostnamen ein, z. B.
octocorp.ghe.com.
Standardmäßig speichert GitHub CLI Ihre Anmeldeinformationen im Schlüsselring Ihres Betriebssystems, sofern ein Schlüsselring verfügbar ist, andernfalls in einer Nur-Text-Konfigurationsdatei. Sie müssen diese Datei nicht selbst verwalten.
Authentifizieren mit einer Umgebungsvariable
Für Skripts und andere nicht interaktive Verwendungen können Sie ein Token über eine Umgebungsvariable bereitstellen, anstatt sich anzumelden. Legen Sie GH_TOKEN für GitHub.com und GitHub Enterprise Cloud fest, oder GH_ENTERPRISE_TOKEN für GitHub Enterprise Server.
GH_TOKEN=YOUR-TOKEN gh api user
Ersetze YOUR-TOKEN durch dein Token. Wenn eine dieser Variablen festgelegt ist, verwendet GitHub CLI sie anstelle gespeicherter Anmeldeinformationen und schreibt das Token nicht auf den Datenträger. Wenn Sie einen Standardhost für Befehle festlegen möchten, die nicht an ein bestimmtes Repository gebunden sind, legen Sie die GH_HOST Umgebungsvariable fest.
Authentifizieren in GitHub Actions
Authentifizieren Sie GitHub Actions in einem GitHub CLI Workflow, indem Sie die automatisch bereitgestellte GITHUB_TOKEN über die GH_TOKEN Umgebungsvariable übergeben. Dies funktioniert sowohl für GitHub.com als auch für GitHub Enterprise Cloud.
steps:
- name: List open issues
env:
GH_TOKEN: ${{ github.token }}
run: gh issue list --repo ${{ github.repository }}
Weitere Informationen über das Token, das GitHub Actions bereitstellt, finden Sie unter GITHUB_TOKEN.
Auf GitHub Enterprise Server setzen Sie GH_TOKEN anstelle von GH_HOST und setzen GitHub Enterprise Server auf Ihren GitHub CLI-Host, sodass GH_ENTERPRISE_TOKEN bei der richtigen Instanz authentifiziert wird. Im folgenden Beispiel wird als Host verwendet ghes.example.com .
steps:
- name: List open issues
env:
GH_HOST: ghes.example.com
GH_ENTERPRISE_TOKEN: ${{ github.token }}
run: gh issue list --repo ${{ github.repository }}
Authentifizieren von Git über HTTPS
Wenn Sie HTTPS als bevorzugtes Protokoll für Git-Vorgänge auswählen und bestätigen, dass Sie sich bei Git mit Ihren GitHub Anmeldeinformationen authentifizieren möchten, konfiguriert GitHub CLI sich selbst als Git-Anmeldeinformationshilfsprogramm, wenn Sie noch keine konfiguriert haben. Auf diese Weise können Sie Git-Befehle ausführen, z. B. git push und git pull, ohne einen separaten Anmeldeinformations-Manager oder SSH einzurichten. Wenn Sie bereits ein weiteres Hilfsprogramm für Anmeldeinformationen verwenden, werden Ihre neuen Anmeldeinformationen stattdessen in diesem Hilfsprogramm gespeichert.
Sie können dies jederzeit einrichten, indem Sie den folgenden Befehl ausführen.
gh auth setup-git
Um Git für einen einzelnen Host anstelle aller authentifizierten Hosts zu konfigurieren, verwenden Sie das gh auth setup-git --hostname github.com-Flag, beispielsweise --hostname.
Ablaufende, erneuerbare Token verwenden
GitHub CLI authentifiziert sich standardmäßig mit einem langlebigen Token, das nicht abläuft. Wenn ein solches Token offengelegt wird, gewährt es Zugriff, bis Sie es manuell widerrufen.
Ablaufende Token reduzieren dieses Risiko. Wenn Sie sich dafür entscheiden, speichert GitHub CLI ein ablaufendes Zugriffstoken zusammen mit einem rotierenden Refresh-Token. Das Zugriffstoken läuft innerhalb von Stunden ab, und GitHub CLI tauscht das Refresh-Token automatisch gegen ein neues aus, wenn ein neues Zugriffstoken benötigt wird. Sie bleiben authentifiziert, ohne sich erneut anzumelden, während ein kompromittiertes Zugriffstoken innerhalb weniger Stunden unbrauchbar wird, statt unbegrenzt gültig zu bleiben.
Dieses Verhalten ist opt-in und abwärtskompatibel. Wenn Sie nicht zustimmen, werden keine Änderungen vorgenommen, und vorhandene Anmeldungen und manuell bereitgestellte Token funktionieren weiterhin wie zuvor.
Zustimmen
Ablaufende Token erfordern GitHub CLI Version v2.103.0 oder höher.
Ablaufende Token sind auf GitHub.com und GitHub Enterprise ServerGitHub Enterprise Cloud verfügbar. Weitere Informationen dazu, wie ablaufende OAuth-Token und Aktualisierungstoken funktionieren, finden Sie unter Autorisieren von OAuth-Apps.
Um ablaufende Anmeldeinformationen anzufordern, fügen Sie das --expiring Flag hinzu, wenn Sie sich anmelden.
gh auth login --expiring
Ob Sie ablaufende Anmeldeinformationen erhalten, hängt von der Serverunterstützung ab. Das --expiring Flag fordert diese an. Wenn der Server sie nicht unterstützt, wird GitHub CLI auf ein normales, nicht ablaufendes Token zurückgegriffen und eine Informationsmeldung angezeigt.
Nachdem Sie zugestimmt haben, GitHub CLI werden die Anmeldeinformationen bei Bedarf für Sie aktualisiert, sodass Sie täglich nichts Neues ausführen müssen.
Wenn Sie für jede Anmeldung zustimmen möchten, ohne das Flag jedes Mal zu übergeben, aktivieren Sie die Einstellung:
gh config set expiring_credentials enabled
Ablaufende Token mit Git verwenden
Wenn Sie ablaufende Token für Git-Vorgänge über HTTPS verwenden möchten, muss GitHub CLI Ihr Git-Hilfsprogramm für Anmeldeinformationen sein, damit es die rotierenden Anmeldeinformationen für Git bereitstellen und aktualisieren kann. Wenn Sie sich mit ablaufenden Anmeldeinformationen anmelden, fordert GitHub CLI Sie auf, GitHub CLI als Ihren Git-Anmeldeinformationshelfer zu konfigurieren, falls dies noch nicht geschehen ist. Um sicherzustellen, dass GitHub CLI jederzeit als Hilfsprogramm eingerichtet ist, führen Sie gh auth setup-git aus.
Außerdem empfehlen wir ein Upgrade auf Git 2.46 oder höher. Ab Git 2.46 kann GitHub CLI eine ablaufende Anmeldeinformation so markieren, dass ein zwischenspeichernder Credential-Helper sie nicht über ihre Lebensdauer hinaus speichert. Bei älteren Versionen von Git funktioniert GitHub CLI zwar weiterhin, gibt aber eine einmalige Empfehlung zum Upgrade aus.
Gespeichertes Token lesen
Einige Skripts und Erweiterungen benötigen das Token, das von GitHub CLI verwendet wird, z. B. um eine curl-Anfrage oder einen anderen HTTP-Client zu authentifizieren. Führen Sie zum Drucken des aktiven Tokens den folgenden Befehl aus.
gh auth token
Bei ablaufenden Anmeldeinformationen aktualisiert GitHub CLI das Zugriffstoken bei Bedarf vor dem Drucken, sodass das empfangene Token gültig ist. Verwenden Sie das --hostname Flag, um das Token für einen bestimmten Host zu lesen. Wenn Sie das aktuelle Token drucken möchten, ohne es zu aktualisieren, verwenden Sie das --no-refresh Flag.
Aktualisieren oder Hinzufügen von Scopes
Im Laufe der Zeit erfordert ein Befehl möglicherweise zusätzliche Scopes, über die Ihre Anmeldeinformationen noch nicht verfügen.
Wenn Sie ablaufende Token verwenden, übergeben Sie das Flag --expiring (oder aktivieren Sie die expiring_credentials Einstellung), wenn Sie gh auth refresh ausführen. Andernfalls kann das Ändern von Scopes Ihre ablaufenden Anmeldeinformationen durch nicht ablaufende ersetzen.
Verwenden Sie den folgenden Befehl, um die Berechtigungsbereiche für Ihre vorhandenen Anmeldeinformationen zu ändern.
gh auth refresh --scopes SCOPES
Ersetzen Sie SCOPES durch eine kommagetrennte Liste der benötigten Bereiche.
Dies unterscheidet sich von der automatischen Aktualisierung eines ablaufenden Tokens, die im Hintergrund erfolgt und Ihre Scopes nicht ändert. Siehe Verwenden von ablaufenden, aktualisierbaren Token.
Überprüfen des Authentifizierungsstatus
Führen Sie den folgenden Befehl aus, um zu sehen, bei welchen Konten Sie angemeldet sind, sowie Details wie z. B. den Token-Ablauf.
gh auth status
Standardmäßig ist das Token selbst ausgeblendet. Wenn ein Token abgelaufen ist oder bald abläuft, aktualisiert gh auth status es beim Melden des Status.
Verwenden Sie diese Flags, um das Ausgabe- und Aktualisierungsverhalten anzupassen:
- Um das Token in die Ausgabe einzuschließen, fügen Sie
--show-tokenhinzu. - Verwenden Sie
--jsonfür maschinenlesbare Ausgabe, das Sie mit--show-tokenkombinieren können. - Um den aktuellen Zustand ohne Aktualisierung auszugeben, fügen Sie
--no-refreshhinzu.
Abmeldung
Um sich bei einem Konto abzumelden, führen Sie den folgenden Befehl aus, und folgen Sie den Eingabeaufforderungen.
gh auth logout
Um sich von einem bestimmten Host abzumelden, ohne zur Auswahl aufgefordert zu werden, verwenden Sie das gh auth logout --hostname github.com-Flag, zum Beispiel --hostname.
Verwendung mehrerer Konten
Sie können sich bei mehreren Konten authentifizieren und mit gh auth switch zwischen diesen wechseln. Weitere Informationen findest du unter Verwenden der GitHub CLI auf GitHub Plattformen.