← 输入框|docs.github.com|刷新
Skip to main content
Skip to content

Authentifizierung mit GitHub CLI

Hier erfahren Sie, wie Sie sich authentifizieren GitHub CLIkönnen , von interaktiven Anmelde- und Umgebungsvariablen, ablaufenden Token und GitHub Actions.

Ü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 login an, 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

  1. Um sich auf Ihrem Computer zu authentifizieren, führen Sie den folgenden Befehl über Ihr Terminal aus.

    gh auth login
    
  2. 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-token hinzu.
  • Verwenden Sie --json für maschinenlesbare Ausgabe, das Sie mit --show-token kombinieren können.
  • Um den aktuellen Zustand ohne Aktualisierung auszugeben, fügen Sie --no-refresh hinzu.

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.

Weiterführende Lektüre