Website-Suche

So beheben Sie, dass Git bei der HTTP(S)-Authentifizierung immer nach Benutzeranmeldeinformationen fragt


Um auf ein Remote-Git-Repository zuzugreifen oder damit zu arbeiten, können Sie entweder SSH- oder HTTP(S)-Protokolle verwenden; Bei ersterem können Sie bei privaten Repositorys einfach SSH-Schlüssel ohne Passphrase konfigurieren, sodass Sie Daten sicher übertragen können, ohne Ihren Benutzernamen und Ihr Passwort eingeben zu müssen.

Bei HTTP(S) werden Sie jedoch bei jeder Verbindung aufgefordert, Ihren Benutzernamen und Ihr Passwort einzugeben (wenn Git eine Authentifizierung für einen bestimmten URL-Kontext benötigt) – Github-Benutzer wissen das gut.

In diesem Artikel zeigen wir Ihnen, wie Sie das Problem beheben können, dass Git für den Zugriff über HTTP(S) immer nach Benutzeranmeldeinformationen fragt. Wir erklären verschiedene Möglichkeiten, um zu verhindern, dass Git bei der Interaktion mit einem Remote-Repository über HTTP(S) wiederholt nach Benutzername und Passwort fragt.

So installieren Sie Git unter Linux

Wenn Sie das Git-Paket nicht auf Ihrem System installiert haben, führen Sie den entsprechenden Befehl für Ihre Linux-Distribution aus, um es zu installieren (verwenden Sie bei Bedarf den Sudo-Befehl).

sudo apt install git      [On Debian/Ubuntu]
yum install git           [On CentOS/RHEL/Fedora]
sudo zypper install git   [On OpenSuse]
sudo pacman -S git        [On Arch Linux]

Geben Sie den Git-Benutzernamen und das Passwort in die Remote-URL ein

Wie bereits erwähnt, benötigt jede Verbindung beim Klonen eines Remote-Git-Repositorys über HTTP(S) einen Benutzernamen und ein Passwort wie abgebildet.

Um zu verhindern, dass Git nach Ihrem Benutzernamen und Passwort fragt, können Sie die Anmeldeinformationen wie gezeigt in die URL eingeben.


sudo git clone https://username:[email /username/repo_name.git
OR
sudo git clone https://username:[email /username/repo_name.git local_folder

Der Hauptnachteil dieser Methode besteht darin, dass Ihr Benutzername und Ihr Passwort im Befehl in der Shell-Verlaufsdatei gespeichert werden.

sowie in der Datei .git/config im lokalen Ordner, was ein Sicherheitsrisiko darstellt.

cat .git/config

Hinweis: Für Github-Benutzer, die die Zwei-Faktor-Authentifizierung aktiviert haben oder auf eine Organisation zugreifen, die SAML Single Sign-On verwendet, müssen Sie dies tun Generieren und verwenden Sie ein persönliches Zugriffstoken, anstatt Ihr Passwort für HTTPS Git einzugeben (wie in den Beispielausgaben in diesem Handbuch gezeigt). Um ein persönliches Zugriffstoken zu generieren, gehen Sie in Github zu Einstellungen => Entwicklereinstellungen => Persönliche Zugriffstoken.

Benutzernamen und Kennwort des Remote-Git-Repositorys auf der Festplatte speichern

Die zweite Methode besteht darin, den Git-Anmeldeinformationshelfer zu verwenden, um Ihren Benutzernamen und Ihr Passwort wie gezeigt in einer einfachen Datei auf der Festplatte zu speichern.

git config credential.helper store				
OR
git config --global credential.helper store		

Von nun an schreibt Git beim ersten Zugriff für jeden URL-Kontext Anmeldeinformationen in die Datei ~/.git-credentials. Um den Inhalt dieser Datei anzuzeigen, können Sie wie gezeigt den Befehl cat verwenden.

cat  ~/.git-credentials

Für nachfolgende Befehle für denselben URL-Kontext liest Git Ihre Benutzeranmeldeinformationen aus der obigen Datei.

Genau wie die vorherige Methode ist auch diese Art der Übergabe von Benutzeranmeldeinformationen an Git unsicher, da die Speicherdatei unverschlüsselt ist und nur durch Standard-Dateisystemberechtigungen geschützt ist.

Die unten erläuterte dritte Methode gilt als sicherer.

Zwischenspeichern des Benutzernamens und des Kennworts des Remote-Git-Repositorys im Speicher

Zu guter Letzt können Sie auch den Git-Anmeldeinformationshelfer verwenden, um Ihre Anmeldeinformationen vorübergehend für einige Zeit im Speicher zu speichern. Geben Sie dazu den folgenden Befehl ein.

git config credential.helper cache
OR
git config --global credential.helper cache

Wenn Sie nach der Ausführung des obigen Befehls zum ersten Mal versuchen, auf ein entferntes privates Repository zuzugreifen, fragt Git nach Ihrem Benutzernamen und Passwort und speichert diese für einige Zeit im Speicher.

Die Standard-Caching-Zeit beträgt 900 Sekunden (oder 15 Minuten). Danach fordert Git Sie auf, Ihren Benutzernamen und Ihr Passwort erneut einzugeben. Sie können es wie folgt ändern (1800 Sekunden=30 Minuten oder 3600 Sekunden=1 Stunde).

git config --global credential.helper 'cache --timeout=18000'
OR
git config --global credential.helper 'cache --timeout=36000'

Weitere Informationen zu Git und Credentials-Helfern finden Sie auf deren Manpages.

man git
man git-credential-cache
man git-credential-store

War dieser Leitfaden hilfreich? Teilen Sie uns dies über das untenstehende Feedback-Formular mit. Sie können auch Fragen oder Gedanken zu diesem Thema mitteilen.