Kein Git mehr per Passwort GitHub-Authentifizierung per Token

Von Mirco Lang |

Anbieter zum Thema

Die Warnmeldungen bei GitHub häufen sich: Ab August wird der Git-Zugriff nicht mehr per Passwort möglich sein. Personal Access Token sollen dir gewohnte Authentifizierung ersetzen.

Wer über GitHub-CLI oder APIs auf Git zugreifen möchte, muss seine Authentifizierung auf Token umstellen.
Wer über GitHub-CLI oder APIs auf Git zugreifen möchte, muss seine Authentifizierung auf Token umstellen.
(Bild: synkevych / Unsplash)

Wer in letzter Zeit vom Terminal aus mit GitHub gearbeitet hat, dem ist es vielleicht schon aufgefallen: GitHub warnt sporadisch, dass der Git-Zugriff per Passwort bald nicht mehr möglich sei.

Manch einer hat diese Warnungen jedoch möglicherweise wie die alltäglichen Update-Hinweise einfach übergangen. Erste Warnungen gab es immerhin bereits vor vielen Monaten. Und wer kümmert sich schon um lästige Änderungen, die erst in einem Jahr wirksam werden? Ab dem 13. August ist der Zugriff per Passwort nicht mehr möglich.

Auf den 30. Juni sollte man sich ebenfalls gefasst machen: Zwischen 9 und 12 Uhr sowie zwischen 18 und 21 Uhr wird der Zugang per Passwort komplett gesperrt! Dieser geplante „Brownout“ wird sich am 28. Juli wiederholen. Wer täglich mit GitHub arbeitet, sollte den Account also entsprechend vorher umstellen, um Ausfälle zu vermeiden.

Sicherheit durch Tokens

GitHub hat bereits im Juli 2020 auf die Umstellung der Git-Authentifizierung hingewiesen – und jetzt wird es ernst. Statt Passwort-Authentifizierung müssen Sie künftig Token nutzen. Das gilt für jeglichen Git-Zugriff per Kommandozeile oder Desktop-Anwendung sowie jegliche Apps und Services, die auf Ihre GitHub-Repos zugreifen. Außen vor bleiben lediglich GitHub Desktop und Enterprise-Server-Kunden.

Die Motivation dürfte klar sein: GitHub hat in den letzten Jahren viel für die Sicherheit getan, von optionaler Zwei-Faktor-Authentifizierung, über Alarmierungen für Anmeldeversuche bis hin zur Überprüfung von Passwörtern auf Vorkommen in größeren Daten-Leaks über HaveIBeenPwned. Der Zugriff via Nutzername und Passwort wurde dabei rein aus Gründen der Kompatibilität zunächst beibehalten.

Die Authentifizierung mit Tokens verlangt zwar zunächst ein wenig Aufwand, bringt aber einige Vorteile mit sich: Tokens sind einzigartig und für einzelne Verwendungen oder Geräte erstellbar, sie können jederzeit zurückgerufen werden, sind als Random-Strings nicht anfällig für Bruteforce-Angriffe und können vor allem für ganz bestimmte Rechte und Aufgaben konfiguriert werden.

Personal Acces Token erstellen

Wer also die GitHub-API oder die Kommandozeile nutzen, muss diese auf einen Personal Access Token (PAT) umstellen – das funktioniert folgendermaßen:

Zunächst mal müssen Sie, sofern vorhanden, Ihr gespeichertes Passwort loswerden. In der Regel liegt dies, sofern nicht anders eingestellt, schlicht in der Keychain. Einen schnellen Überblick liefert „git config --list | grep credential“.

Sofern hier „store“ zu finden ist, hat Git das Passwort lokal und unverschlüsselt gespeichert. In diesem Fall lässt sich der Cache mit „git config --global --unset credential.helper“ (gegebenenfalls ohne global-Angabe) löschen und die Daten selbst finden Sie standardmäßig unter „$HOME/.git-credentials.

Seltener Anblick: Keychain-Fenster von Windows.
Seltener Anblick: Keychain-Fenster von Windows.
(Bild: Lang / Microsoft)

Ist hier die Keychain zu finden, muss der Zugang entsprechend daraus gelöscht werden. Unter Linuxen dürfte der Umgang damit selbstverständlich sein, unter Windows hingegen nicht. Die Windows-eigene Verwaltung wird bei obiger Abfrage mit „wincred“ ausgegeben. Die Windows-Keychain finden Sie über die Systemsteuerung unter „Systemsteuerung\Alle Systemsteuerungselemente\Anmeldeinformationsverwaltung“.

Etwas universeller funktioniert der Befehl „rundll32.exe keymgr.dll,KRShowKeyMgr“ aus dem Terminal heraus. Typisch Windows: Die beiden Wege rufen inhaltlich das Gleiche auf, allerdings unter verschiedenen Oberflächen. Egal in welchem Fenster Sie landen, hier können Sie die gespeicherten GitHub-Daten löschen.

Authentifizierung für Git-Kommandos nur noch mit Token.
Authentifizierung für Git-Kommandos nur noch mit Token.
(Bild: Lang / GitHub)

Beim nächsten Versuch, über den Terminal zu pushen, wird sich wieder das Fenster zur Passworteingabe melden. Nun können Sie einen PAT in GitHubs Weboberfläche anlegen. Diese Funktion findet sich unter den „Settings“ im Nutzermenü oben rechts, nicht in den „Settings“ des einzelnen Repos. Rufen Sie also „Settings/Developer Settings/Personal access tokens“ auf und erstellen Sie über „Generate new token“ einen Token.

GitHub-Tokens können präzise zugeschnitten werden.
GitHub-Tokens können präzise zugeschnitten werden.
(Bild: Lang / GitHub)

In der Folge bekommen Sie eine lange Liste mit „Scopes“, einzelnen Bereichen, für die dieser Token berechtigen soll. Eine Erläuterung der einzelnen Bereiche ist in den GitHub Docs zu finden. Für den vollständigen Zugriff via Kommandozeile genügt ein Häkchen ganz oben bei „repo“.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Nach dem Speichern bekommen Sie einmalig (!) den Token zu sehen, den Sie ab sofort wie ein ganz normales Passwort nutzen können und natürlich auch entsprechend behandeln sollten. Bei der nächsten zu autorisierenden Git-Aktion geben Sie den Token dann schlicht als Passwort an. Anschließend funktioniert der Git-Workflow wie zuvor.

Zwei-Faktor-Authentifizierung und SSH

Nicht betroffen sind Benutzer, die ihre Authentifizierung bislang mit SSH-Schlüsseln regeln – diese Variante ist nach wie vor möglich. Auch Nutzer der Zwei-Faktor-Authentifizierung müssen nichts weiter unternehmen, da diese bei GitHub die Nutzung von Tokens bereits impliziert.

Folglich können Sie alternativ zum obigen Vorgehen auch 2FA über „Settings/Account security“ aktivieren, um Logins auf die GitHub-Website mit einem zweiten Schlüssel zu sichern, der wie üblich vom Smartphone per App geliefert wird. Die Authentifizierung auf der Kommandozeile betrifft dies nur insofern, als dass eben ein Token verlangt wird – aber für ein „git push“ müssen Sie freilich nicht jedes Mal einen (zweiten) Schlüssel angeben.

Man kann GitHub durchaus zugestehen, das ganze Prozedere sehr anwenderfreundlich und unaufgeregt umgesetzt zu haben – ein Jahr der sporadischen Warnungen, zwei explizite Warn-Tage mit geplanten Ausfallzeiten und ordentliche Hintergrundinformationen sollten etwaige Probleme im August verhindern. Dennoch der dringende Tipp: Werden Sie sofort tätig, jetzt ist das Thema gerade präsent!

Übrigens: Nicht nur der reine Git-Zugriff auf GitHub ist betroffen, auch API-Anfragen und Apps müssen gegebenenfalls angepasst werden, so dass etwa aus …

curl -u my_user:my_password https://api.github.com/user/repos

… eine Abfrage wie …

curl -H 'Authorization: token my_access_token' https://api.github.com/user/repos

… wird. Weitere Infos dazu finden Sie in GitHubs Entwicklerblog. Wenn Sie mehr über 2FA erfahren wollen: 5 freie 2FA-Systeme zum Nachrüsten.

(ID:47443223)