GitHub Personal Access Token: erstellen, mit Git nutzen, widerrufen | We.Inc
Wähle mit einem schnellen Checker zwischen fine-grained und classic, erstelle den Token, nutze ihn für Git über HTTPS, speichere ihn in einem Credential Helper und regle Ablauf und Widerruf.
Ein Personal Access Token ersetzt dein GitHub-Passwort, wenn Git über HTTPS mit GitHub kommuniziert oder ein Skript die API aufruft. Erstelle einen unter Settings, Developer settings, Personal access tokens, wähle fine-grained, sofern du keine Funktion von classic brauchst, und füge ihn ein, wenn Git nach einem Passwort fragt.
Fine-grained und classic Tokens im Vergleich
Fine-grained
Classic
Geltungsbereich
Ausgewählte Repositorys mit Berechtigungen pro Bereich
Breite Scopes über alle Repositorys, auf die du Zugriff hast
Empfehlung von GitHub
Standardmäßig verwenden
Nur wenn fine-grained die Aufgabe nicht erfüllen kann
Öffentliche Repos, in denen du kein Mitglied bist
Kann nicht beitragen
Kann schreiben
Mehrere Organisationen in einem Token
Nein
Ja
Packages und Checks API
Nicht unterstützt
Unterstützt
Limit pro Konto
Laut Dokumentation kein Limit
GitHub akzeptiert für Git über HTTPS keine Kontopasswörter mehr, daher brauchst du zum Klonen eines privaten Repositorys oder zum Pushen von einem Server einen Token, einen SSH-Key oder einen Credential Manager. Diese Seite hilft dir bei der Wahl des Token-Typs, zeigt, wo du ihn erstellst, und erklärt die sichereren Wege, ihn auf deinem Rechner zu speichern, statt ihn jedes Mal einzufügen.
Beantworte die Fragen im Checker, um zu sehen, ob ein fine-grained Token deinen Fall abdeckt.
Öffne dein Profilbild, dann Settings, Developer settings, Personal access tokens, und wähle den Typ, den der Checker vorschlägt.
Lege ein Ablaufdatum fest, wähle Repositorys und Berechtigungen, generiere den Token und kopiere ihn sofort; GitHub zeigt ihn nur bei der Erstellung an.
Nutze ihn als Passwort für Git über HTTPS, oder besser: Melde dich einmal mit der GitHub CLI oder dem Git Credential Manager an, damit er für dich gespeichert wird.
Gib jedem Token genau eine Aufgabe und nur die Repositorys und Berechtigungen, die diese Aufgabe braucht, damit ein Leak so wenig wie möglich offenlegt.
Setze immer ein Ablaufdatum. Eine Kalendererinnerung vor dem Ablauf ist besser als ein kaputtes Deployment an einem Freitag.
Leg einen Token niemals in ein Repository oder einen Gist. GitHub widerruft Tokens, die es in öffentlichen Repos findet, und in privaten ist es trotzdem ein Leak.
Bevorzuge für Server und CI Deploy Keys oder die eigenen kurzlebigen Zugangsdaten der Plattform statt eines persönlichen Tokens, der an dein Konto gebunden ist.
Häufige Fragen
Warum sagt Git, dass die Passwort-Authentifizierung nicht unterstützt wird?
GitHub akzeptiert dein Kontopasswort für Git über HTTPS nicht mehr. Wenn Git nach einem Passwort fragt, füge stattdessen einen Personal Access Token ein oder wechsle zu SSH, der GitHub CLI oder dem Git Credential Manager.
Welche Berechtigungen braucht ein fine-grained Token zum Pushen von Code?
Wähle die Repositorys aus und setze dann unter den Repository-Berechtigungen Contents auf Lesen und Schreiben. Füge weitere Berechtigungen nur hinzu, wenn ein Skript sie braucht, etwa Pull requests oder Issues.
Laufen Personal Access Tokens ab?
Du legst beim Erstellen ein Ablaufdatum fest, und Organisationen können ein Maximum vorschreiben. Unabhängig davon widerruft GitHub automatisch einen Personal Access Token, der ein Jahr lang nicht verwendet wurde.
Wie widerrufe ich einen Token?
Geh zu Settings, Developer settings, Personal access tokens, öffne den Token und lösche ihn. Jedes Git-Remote und jedes Skript, das ihn nutzt, funktioniert sofort nicht mehr, ersetze ihn also überall, wo er gespeichert war.
Sollte ich einen Token oder SSH verwenden?
Beides funktioniert mit Git. SSH-Keys laufen nie ab, solange du sie nicht entfernst, und eignen sich für deinen eigenen Rechner. Tokens eignen sich für Netzwerke, die nur HTTPS erlauben, für Skripte, die auch die API aufrufen, und für Fälle, in denen du einen automatischen Ablauf willst.
Den Token speichern, statt ihn einzufügen
GitHub selbst rät, die Authentifizierung der GitHub CLI oder dem Git Credential Manager zu überlassen. Führe gh auth login aus, wähle HTTPS, und Git-Befehle sind ab dann authentifiziert, ohne dass ein Token in deiner Zwischenablage liegt.
Der Git Credential Manager wird mit Git for Windows ausgeliefert und lässt sich unter macOS und Linux installieren. Er speichert Zugangsdaten im sicheren Speicher des Systems und erledigt die Zwei-Faktor-Anmeldung über den Browser.
Organisationen müssen Tokens eventuell genehmigen
Eine Organisation kann für fine-grained Tokens eine Genehmigung verlangen, sie einschränken oder classic Tokens blockieren. Wenn dein Token bei persönlichen Repos funktioniert, aber nicht bei denen der Firma, frag einen Organisationsinhaber nach der Richtlinie.
Einen Token mit Git verwenden
Einmal mit der GitHub CLI anmelden
Wähle GitHub.com, dann HTTPS und melde dich dann über den Browser an. Die CLI richtet Git so ein, dass es die gespeicherten Zugangsdaten nutzt.
Den Token einfügen, wenn Git nach einem Passwort fragt
Gib deinen GitHub-Benutzernamen ein und füge dann den Token als Passwort ein. Ein Credential Helper kann ihn anschließend speichern.
Einen Token in einem Skript nutzen, ohne ihn auf der Festplatte zu speichern
Lies den Token aus einer Umgebungsvariable, damit er weder in der Skriptdatei noch in der Remote-URL des Repositorys auftaucht.
Zu einem öffentlichen Repository beitragen, in dem ich kein Mitglied bin
Als externer Mitarbeiter an den Repos einer Organisation arbeiten
Mit einem Token auf Repositorys in mehreren Organisationen zugreifen
GitHub Packages nutzen
Die Checks API nutzen
Welchen Token-Typ brauche ich?
Hake alles an, was der Token können soll:
Ein fine-grained Token deckt das ab. GitHub empfiehlt ihn als Standard.
Du brauchst einen classic Token für: {v}. Gib ihm die engsten Scopes und ein Ablaufdatum.
Wo du ihn erstellst
Settings > Developer settings > Personal access tokens > Fine-grained tokens > Generate new token
Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token