Dieser Artikel stellt vor, wie mit dem Fehler remote: Support for password authentication was removed・fatal: Authentication failed umgegangen wird, wenn versucht wird, ein Repository mit git zu einem Remote wie GitHub zu pushen. Der letzte Teil behandelt auch, wie ein Zugriffstoken auf GitHub erstellt wird.

Beim Ausführen von git push in einem Git-Projekt kann der folgende Fehler auftreten.
$ git push -u origin main
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/user/repo.git/'
Wie die Fehlermeldung anzeigt, wurden bei git push und ähnlichen Operationen früher einfache Passwortzeichenfolgen eingegeben, aber die Authentifizierungsmethode wurde Ende 2021 auf tokenbasierte Authentifizierung geändert.
Die Hauptursache dieses Fehlers ist, wie oben beschrieben, wenn das alte Passwort oder das Passwort, das zum Anmelden bei GitHub verwendet wird, an der Passwortaufforderung eingegeben wird, wo ein Token eingegeben werden sollte, oder wenn ein solches Passwort zwischengespeichert ist.
Im Folgenden wird das Verfahren zur Erstellung eines Zugriffstokens auf GitHub vorgestellt.
Navigieren Sie zur folgenden Seite.
Gehen Sie zu “Personal access tokens” und klicken Sie auf generate new token Wählen Sie die erforderlichen Berechtigungen aus und schließen Sie die Erstellung ab. In meinem Fall klickte ich auf repo (Repository), um repositorybezogene Arbeiten einschließlich git push zu ermöglichen.


Wenn die Erstellung des Zugriffstokens abgeschlossen ist, gelangen Sie zu einer Seite wie der folgenden. Die Zeichenfolge, die mit “ghp_” beginnt, ist das Token. Kopieren Sie dies und fügen Sie es als Passwort ein, wenn während git push zu GitHub nach einem Passwort gefragt wird, anstelle Ihres GitHub-Passworts.

Ohne Konfiguration müssen Sie bei jedem git push das Passwort (Zugriffstoken) eingeben. Dies reduziert die Arbeitseffizienz, daher cachen oder speichern Sie das Zugriffstoken für eine bestimmte Zeit wie folgt in einer Datei.
- Die erstere Cache-Methode ist sicherer, aber die letztere Dateispeichermethode ist unsicherer. Konkret könnten beispielsweise böswillige Node.js npm-Module/Bibliotheken auf das Zugriffstoken zugreifen können.
Um im Cache zu speichern:
Im folgenden Befehlsbeispiel ist das Timeout auf 3600 Sekunden, eine Stunde, eingestellt. Dies bedeutet, dass Sie nach Eingabe des Zugriffstokens beim ersten git push und dessen Zwischenspeicherung eine Stunde lang git push und git-Befehle verwenden können, ohne das Zugriffstoken erneut einzugeben.
git config --global credential.helper 'cache --timeout=3600'
Um in einer Datei zu speichern
git config --global credential.helper 'store'
Wenn in einer Datei gespeichert wird, werden die Token-Daten, sofern keine Einstellungen geändert werden, im folgenden Dateipfad gespeichert.
~/.git-credentials
Sie können die gespeicherten Token-Daten mit dem folgenden Befehl ausgeben.
cat ~/.git-credentials
Referenz: