Ich möchte ein Push and Pull in GitExtension verwenden, ohne jedes Mal meinen Benutzer und mein Passwort in einer Eingabeaufforderung einzugeben.
Wie kann ich meine Anmeldeinformationen in GIT speichern?
Lauf
git config --global credential.helper store
dann
git pull
geben Sie einen Benutzernamen und ein Passwort ein. Diese Angaben werden später gespeichert. Die Anmeldeinformationen werden in einer Datei auf der Festplatte gespeichert, mit den Festplattenberechtigungen "Nur vom Benutzer lesbar/beschreibbar", aber immer noch im Klartext.
Wenn Sie das Passwort später ändern möchten
git pull
Schlägt fehl, da das Passwort falsch ist, entfernt git dann den fehlerhaften Benutzer + Passwort aus der ~/.git-credentials
-Datei und führt sie erneut aus
git pull
um ein neues Passwort zu vergeben, damit es wie früher funktioniert.
Sie können den git config
verwenden, um das Speichern von Anmeldeinformationen in git zu aktivieren.
git config --global credential.helper store
Wenn Sie diesen Befehl ausführen, werden Sie beim ersten Abrufen oder Pushen aus dem Remote-Repository nach dem Benutzernamen und dem Kennwort gefragt.
Anschließend müssen Sie für eine konsequente Kommunikation mit dem Remote-Repository keinen Benutzernamen und kein Kennwort angeben.
Das Speicherformat ist eine .git-credentials
-Datei, die im Klartext gespeichert wird.
Sie können auch andere Helfer für den git config credential.helper
verwenden, nämlich den Speichercache:
git config credential.helper cache <timeout>
dies erfordert einen optionalen timeout parameter
, der festlegt, wie lange die Anmeldeinformationen im Speicher aufbewahrt werden. Wenn Sie den Helper verwenden, berühren die Anmeldeinformationen niemals die Festplatte und werden nach dem angegebenen Zeitlimit gelöscht. Der default
Wert ist 900 seconds (15 minutes).
WARNING: Wenn Sie diese Methode verwenden, werden Ihre Git-Account-Passwörter im plaintext
Format gespeichert, im global .gitconfig file
, zB unter Linux wird es /home/[username]/.gitconfig
Wenn dies für Sie unerwünscht ist, verwenden Sie stattdessen einen ssh key
für Ihre Konten.
Sie können Ihren Benutzernamen und Ihr Passwort folgendermaßen festlegen:
git config --global user.name "your username"
git config --global user.password "your password"
Geben Sie im Terminal Folgendes ein:
# Set git to use the credential memory cache
git config --global credential.helper cache
Standardmäßig speichert Git Ihr Passwort für 15 Minuten im Cache.
Geben Sie Folgendes ein, um das Standardzeitlimit für den Kennwort-Cache zu ändern:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
Von GitHub-Hilfe
Sie können die ~/.gitconfig
-Datei in store your credentials bearbeiten
Sudo nano ~/.gitconfig
Welches sollte schon haben
[user]
email = [email protected]
user = gitUSER
Sie sollten am Ende dieser Datei hinzufügen.
[credential]
helper = store
Der Grund, warum ich diese Option empfehle, ist, dass sie global ist. Wenn Sie die Option zu irgendeinem Zeitpunkt entfernen müssen, wissen Sie, wohin Sie sie ändern müssen.
NUR DIESE OPTION IN IHREM PERSÖNLICHEN COMPUTER VERWENDEN.
Wenn Sie dann ziehen klonen | Geben Sie Ihr Git-Passwort ein. Im Allgemeinen wird das Passwort in ~/.git-credentials
im Format gespeichert
https://GITUSER:[email protected]
WO DOMAIN.XXX KÖNNTE GITHUB.COM SEIN | BITBUCKET.ORG | SONSTIGES
Siehe Docs
Geben Sie einfach Ihre Anmeldeinformationen wie folgt in die URL ein:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Sie können speichern so:
git remote add myrepo https://Userna...
... Beispiel zu benutze it:
git Push myrepo master
Nun das ist zu Liste den URL-Aliasen:
git remote -v
... und dass der Befehl, einen von ihnen zu löschen:
git remote rm myrepo
Sie können git-credential-store verwenden, um Ihre Kennwörter unverschlüsselt auf der Festplatte zu speichern, die nur durch die Berechtigungen des Dateisystems geschützt ist.
Beispiel
$ git config credential.helper store
$ git Push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git Push http://example.com/repo.git
[your credentials are used automatically]
Sie können die in der Datei ~/.git-credentials
gespeicherten Anmeldeinformationen überprüfen.
Weitere Informationen finden Sie unter git-credential-store - Hilfsprogramm zum Speichern von Anmeldeinformationen auf der Festplatte
Öffnen Sie für die globale Einstellung das Terminal (von einem beliebigen Ort aus) und führen Sie Folgendes aus:
git config --global user.name "your username"
git config --global user.password "your password"
Dadurch werden alle lokalen Git-Repos, die Sie auf Ihrem Computer haben, diese Informationen verwenden.
Sie können für jedes Repo einzeln konfigurieren, indem Sie folgende Schritte ausführen:
führen Sie Folgendes aus:
git config user.name "your username"
git config user.password "your password"
Dies betrifft nur diesen Ordner (da Ihre Konfiguration lokal ist).
Wenn Sie die SSH-Authentifizierung verwenden, sind Sie sicherer als die Authentifizierung mit Benutzername/Kennwort.
Wenn Sie einen Mac verwenden, ist die SSH-Client-Authentifizierung in den MacOS-Schlüsselbund integriert. Nachdem Sie einen SSH-Schlüssel erstellt haben, geben Sie Folgendes in Ihr Terminal ein:
ssh-add -K ~/.ssh/id_rsa
Dadurch wird der private SSH-Schlüssel zum MacOS-Schlüsselbund hinzugefügt. Der Git-Client verwendet ssh, wenn er eine Verbindung zum Remote-Server herstellt. Solange Sie Ihren öffentlichen ssh-Schlüssel beim Server registriert haben, ist alles in Ordnung.
In diesem Fall benötigen Sie git credential helper, um git mit der folgenden Befehlszeile anzuweisen, sich Ihr GitHub-Kennwort und Ihren Benutzernamen zu merken:
git config --global credential.helper wincred
und wenn Sie Repo mit SSH-Schlüssel verwenden, benötigen Sie SSH-Schlüssel zur Authentifizierung.
Abgesehen von der Bearbeitung der ~/.gitconfig
-Datei können Sie folgende Aktionen ausführen:
git config --local --edit
oder
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
oder
git config --global user.name 'your username'
git config --global user.password 'your password'
Ihr Benutzername und Ihr Passwort können einige Zeichen enthalten, die Ihr Passwort beschädigen, wenn Sie doppelte Anführungszeichen verwenden.
--local
oder --global
bedeutet, dass Konfigurationsparameter für das Projekt oder den OS-Benutzer gespeichert werden.
Nachdem ich Dutzende von SO Posts, Blogs usw. durchgesehen hatte, habe ich jeden ausprobiert Methode, und das ist, was ich mir ausgedacht habe. Es deckt ALLES ab.
Dies sind alle Möglichkeiten und Werkzeuge, mit denen Sie git sicher authentifizieren können, um ein Repository ohne eine Eingabeaufforderung für ein interaktives Kennwort zu klonen.
Willst du nur Works ™? Dies ist die magische Silberkugel.
Holen Sie sich Ihr Access Token (siehe Abschnitt im Cheatsheet, wenn Sie die Github- oder Gitea-Anweisungen dafür benötigen) und setzen Sie es in eine Umgebungsvariable (sowohl für lokale Entwickler als auch für die Bereitstellung):
MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Kopiere und führe für Github diese Zeilen wörtlich aus:
git config --global url."https://api:[email protected]/".insteadOf "https://github.com/"
git config --global url."https://ssh:[email protected]/".insteadOf "ssh://[email protected]/"
git config --global url."https://git:[email protected]/".insteadOf "[email protected]:"
Herzlichen Glückwunsch, jetzt werden alle automatischen Tool-Cloning-Git-Repositorys nicht mehr durch eine Passwort-Eingabeaufforderung behindert, egal ob mit https oder einer der beiden Arten von SSH-URLs.
Verwenden Sie Github nicht?
Für andere Plattformen (Gitea, Github, Bitbucket) ändern Sie einfach die URL. Ändern Sie die Benutzernamen nicht (obwohl sie willkürlich sind, werden sie für unterschiedliche Konfigurationseinträge benötigt).
Kompatibilität
Dies funktioniert lokal unter MacOS, Linux, Windows (in Bash), Docker, CircleCI, Heroku, Akkeris usw.
Mehr Info
Siehe den Abschnitt ".gitconfig anstatt" des Cheatsheets.
Sicherheit
Siehe den Abschnitt "Sicherheit" des Cheatsheets.
.git-credentials
ist der Ort, an dem Ihr Benutzername und Ihr Kennwort gespeichert werden, wenn Sie git config --global credential.helper store
ausführen. Dies wird in anderen Antworten vorgeschlagen. Geben Sie dann Ihren Benutzernamen und Ihr Kennwort ein:
https://${username}:${password_or_access_token}@github.com
So speichern Sie den Benutzernamen und das Passwort:
git config —-global credential.helper store
echo “https://${username}:${password_or_access_token}@github.com“ > ~/.git-credentials
Dies ist sehr nützlich für Github-Roboter, z. zu lösen Verketten automatisierter Builds im selben Docker-Repository indem Sie Regeln für verschiedene Zweige haben und diese dann auslösen, indem Sie in post_Push
hooker im Docker-Hub darauf drücken.
Ein Beispiel hierfür ist hier im Stapelüberlauf.
Keine der obigen Antworten hat für mich funktioniert. Jedes Mal, wenn ich fetch
oder pull
wollte, bekam ich Folgendes:
Enter passphrase for key '/Users/myusername/.ssh/id_rsa':
Für Macs
Ich konnte verhindern, dass meine Passphrase gefragt wurde, indem:
vi ~/.ssh/config
_UseKeychain yes
_:wq!
_ ein.Für Windows
Ich konnte es unter Verwendung der Informationen in diesem Stapelaustausch zum Laufen bringen: https://unix.stackexchange.com/a/12201/348665
Aus dem Kommentar von rifrol unter Linux Ubuntu folgt diese Antwort :
Sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
Sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Einige andere Distributionen stellen die Binärdatei bereit, damit Sie sie nicht erstellen müssen.
In OS X wird es normalerweise mit einem Standardmodul von "osxkeychain" "gebaut", so dass Sie es kostenlos erhalten.