wake-up-neo.com

Wie speichere ich Benutzername und Passwort in GIT?

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?

711
Edson Cezar

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.

1331
Neetika

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.

245
Farhad Faghihi

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"
79
Andreas Bigger

Aktivieren Sie das Hilfsprogramm für Anmeldeinformationen, damit Git Ihr Kennwort für einige Zeit im Speicher speichert:

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

79
simhumileco

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

Starten Sie Ihr Terminal neu.

36
T04435

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

20
Nadu

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:

  • öffnen Sie das Terminal im Repo-Ordner.
  • 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).

14
Tuananhcwrs

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.

14
Birol Efe

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.

10
shaw

Abgesehen von der Bearbeitung der ~/.gitconfig -Datei können Sie folgende Aktionen ausführen:

git config --local --edit

oder

git config --global --edit

Hinweis, immer single Anführungszeichen zu verwenden:

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.

3
prosti

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.

Das Cheatsheet für Vanilla DevOps Git-Anmeldeinformationen und private Pakete

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.

  • Öffentliche SSH-Schlüssel
    • SSH_ASKPASS
  • API-Zugriffstoken
    • GIT_ASKPASS
    • .gitconfig statt
    • .gitconfig [Berechtigungsnachweis]
    • .git-Anmeldeinformationen
    • .netrc
  • Private Pakete (kostenlos)
    • node/npm package.json
    • python/pip/eggs requirements.txt
    • Ruby Gems Gemfile
    • golang go.mod

Die silberne Kugel

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.

3
CoolAJ86

Speichern Sie den Benutzernamen und das Passwort unter .git-credentials

.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.

1
JiaHao Xu

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:

  1. Öffne die Konfiguration mit: _vi ~/.ssh/config_
  2. Folgendes hinzugefügt: _UseKeychain yes_
  3. Gespeichert und beendet: Drücken Sie Esc und geben Sie dann _: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

1
Gene Parcellano

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.

0
rogerdpack