Wie speichere ich Benutzername und Passwort in git [GitExtension]?

1239

Ich möchte in GitExtension automatisch Push und Pull verwenden , ohne jedes Mal meinen Benutzer und mein Passwort in einer Eingabeaufforderung einzugeben .

Wie kann ich meine Anmeldeinformationen in Git speichern?

Edson Cezar
quelle
1
Sie können sich auch über SSH authentifizieren: stackoverflow.com/questions/6565357/…
Anton Tarasenko
1
@AntonTarasenko meine gitconfig sagt nichts über Proxy aus, nur [Benutzer] email = [email protected] name = uname [credential] helper = store
gc7__

Antworten:

2206

Lauf

git config --global credential.helper store

dann

git pull

Geben Sie einen Benutzernamen und ein Passwort ein, und diese Details 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

Wird fehlschlagen, da das Passwort falsch ist, entfernt git dann den beleidigenden Benutzer + Passwort aus der ~/.git-credentialsDatei, also führen Sie es jetzt erneut aus

git pull

um ein neues Passwort anzugeben, damit es wie früher funktioniert.

Neetika
quelle
6
Wie wichtig ist das Flag -u, um das Passwort später zu ändern?
Lucidbrot
8
Verwenden Sie für Debian / Ubuntu libsecret stackoverflow.com/questions/36585496/…
rofrol
3
@ Lucidbrot Entschuldigung für die verspätete Antwort. Git Pull -u funktioniert nicht mit der neuesten Version. Ich habe die Antwort aktualisiert. Hoffe, es wird Ihre Frage beantworten.
Neetika
51
Beachten Sie, dass dadurch Ihr Benutzername und Ihr Passwort in einer Nur-Text-Datei unter ~ / .git-credentials gespeichert werden. Jeder kann es öffnen und lesen.
RoboAlex
12
Das funktioniert nicht. Es kann nicht ziehen.
Urasquirrel
349

Mit können Sie die git configSpeicherung von Anmeldeinformationen in git aktivieren.

git config --global credential.helper store

Wenn Sie diesen Befehl ausführen, werden Sie beim ersten Abrufen oder Drücken aus dem Remote-Repository nach dem Benutzernamen und dem Kennwort gefragt.

Für eine konsequente Kommunikation mit dem Remote-Repository müssen Sie anschließend nicht den Benutzernamen und das Kennwort angeben.

Das Speicherformat ist eine .git-credentialsDatei, die im Klartext gespeichert ist.

Sie können auch andere Helfer für den git config credential.helperSpeichercache verwenden:

git config credential.helper cache <timeout>

Dies dauert optional timeout parameterund bestimmt, wie lange die Anmeldeinformationen im Speicher bleiben. Bei Verwendung des Hilfsprogramms berühren die Anmeldeinformationen niemals die Festplatte und werden nach dem angegebenen Zeitlimit gelöscht. Der defaultWert ist900 seconds (15 minutes).


WARNUNG : Wenn Sie diese Methode verwenden, werden Ihre Git-Account-Passwörter im plaintextFormat gespeichert global .gitconfig file, z. B. unter Linux/home/[username]/.gitconfig

Wenn dies für Sie unerwünscht ist, verwenden ssh keySie stattdessen ein für Ihre Konten.

Farhad Faghihi
quelle
3
Ich wünschte, Sie hätten die .gitconfig-Datei gezeigt - der erste Befehl wurde vom zweiten überschrieben :(
Adam
3
Denn git config credential.helper cachedie Passwörter werden nicht in einer Datei gespeichert, sondern nur im Speicher gespeichert. Siehe: git-scm.com/docs/git-credential-cache
SA
1
Funktioniert nicht. Gibt fatal: Authentifizierung fehlgeschlagen. Fragt nicht einmal nach dem Passwort.
Philip Rego
2
Genau wie ein Nachtrag - Ihr privater SSH-Schlüssel wird auch im Klartext an einem für Benutzer zugänglichen Ort gespeichert, sodass in beiden Fällen im Wesentlichen dieselbe Angriffsfläche vorhanden ist.
Falco
wie kann ich dies für Gitlab
Anil
170

Empfohlene und sichere Methode: SSH

Erstellen Sie einen SSH-Github-Schlüssel. Gehen Sie zu github.com -> Einstellungen -> SSH- und GPG-Schlüssel -> Neuer SSH-Schlüssel. Speichern Sie nun Ihren privaten Schlüssel auf Ihrem Computer.

Wenn der private Schlüssel dann als id_rsa im Verzeichnis ~ / .ssh / gespeichert wird , fügen wir ihn zur Authentifizierung als solchen hinzu:

ssh-add -K ~/.ssh/id_rsa


Eine sicherere Methode: Caching

Wir können git-credential-store verwenden, um unseren Benutzernamen und unser Passwort für einen bestimmten Zeitraum zwischenzuspeichern. Geben Sie einfach Folgendes in Ihre CLI ein (Terminal oder Eingabeaufforderung):

git config --global credential.helper cache

Sie können die Zeitüberschreitung (in Sekunden) auch wie folgt festlegen:

git config --global credential.helper 'cache --timeout=3600'


Eine noch weniger sichere Methode

Git-credential-store kann ebenfalls verwendet werden, speichert jedoch Kennwörter in einer einfachen Textdatei auf Ihrer Festplatte als solche:

git config credential.helper store


Veraltete Antwort - schnell und unsicher

Dies ist eine unsichere Methode zum Speichern Ihres Passworts im Klartext. Wenn jemand die Kontrolle über Ihren Computer erlangt, wird Ihr Passwort angezeigt!

Sie können Ihren Benutzernamen und Ihr Passwort folgendermaßen einstellen:

git config --global user.name "your username"

git config --global user.password "your password"
Andreas größer
quelle
15
Dies hat bei mir nicht funktioniert, Git Clone fragt immer noch nach dem Benutzernamen und dem Passwort
Oliver
11
Ich empfehle nicht, Ihr Passwort so zu speichern, da "git config --global -l" Ihr Passwort auf der Konsole anzeigen würde
CCC
1
Das funktioniert bei mir nicht. Es ist seltsam, dass es für jeden funktionieren sollte, da in der Spezifikation von gitconfig kein Platz für "Passwort" ist
Hamish Todd
.gitconfig ist die andere Datei: .git-Anmeldeinformationen in Ihrem Home-Ordner enthalten eine URL zum Repo mit Ihrem Benutzernamen und Passwort in der URL, genau wie git: // Benutzername: Passwort @ Server / Git / Repo. Seien Sie vorsichtig, es wird einfach gespeichert TEXTPASSWORT. Verwenden Sie "git config --global credential.helper cache", wenn Sie keine ssh-Schlüssel verwenden können.
Skabbit
Als ich versuchte, Benutzer und Passwort manuell hinzuzufügen, brach die Konfigurationsdatei zusammen und ich musste das Repo erneut klonen. Versuchen Sie dies nicht ..
Letie Techera
102

Aktivieren Sie den Helfer für Anmeldeinformationen, damit Git Ihr Passwort 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 15 Minuten lang im Cache.

Geben Sie Folgendes ein, um das Standardzeitlimit für den Kennwortcache zu ändern:

# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'

Aus der GitHub-Hilfe

simhumileco
quelle
7
Sie sind der einzige, der die globale Version vorgeschlagen hat, die WICHTIG ist, weil sie für mich jedes Mal ruiniert wurde, wenn ich das Repo neu geklont habe
Xerus
4
Wie stelle ich das Timeout auf unendlich ein? Ich möchte mein Passwort nie wieder eingeben.
Avamander
8
@ Avamander ersetzen Sie einfach das cacheTeil durch store. Der vollständige Befehl lautet also : git config --global credential.helper store. Beachten Sie, dass dadurch Ihr Passwort in einer Open-Text-Datei gespeichert wird (sozusagen ohne Verschlüsselung).
Aleksandar
2
@Casper Das funktioniert nicht mit mehr als einem Konto. Das Passwort wird nicht wie gewünscht anhand der E-Mail aus dem Store abgerufen, sondern das erste in der Liste wird verwendet.
Avamander
2
@ Avamander hm .. soll das so sein oder könnte es ein Bug sein? Was ist der Maximalwert für den --timeoutParameter?
Aleksandar
50

Sie können die ~/.gitconfigDatei bearbeiten , um Ihre Anmeldeinformationen zu speichern

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 und wenn Sie die Option irgendwann entfernen müssen, wissen Sie, wohin Sie gehen und sie ändern müssen.

Verwenden Sie diese Option nur in Ihrem persönlichen Computer.

Dann, wenn Sie ziehen | Klon | Geben Sie Ihr Git-Passwort ein. Im Allgemeinen wird das Passwort ~/.git-credentialsim Format gespeichert

https://GITUSER:[email protected]

WO DOMAIN.XXX GITHUB.COM SEIN KÖNNTE | BITBUCKET.ORG | ANDERE

Siehe Dokumente

Starten Sie Ihr Terminal neu.

T04435
quelle
1
Vergiss nicht, das Git Bash Fenster neu zu starten. Erst als ich das tat, funktionierte es für mich.
sofs1
33

Geben Sie einfach Ihre Anmeldeinformationen wie folgt in die URL ein:

https://Username: Password@github.com/myRepoDir/myRepo.git

Sie können es so speichern :

git remote add myrepo https://Userna...

... Beispiel, um es zu verwenden :

git push myrepo master


Nun , das ist Liste der URL - Aliase:

git remote -v

... und dass der Befehl, einen von ihnen zu löschen:

git remote rm myrepo

Nadu
quelle
8
Sie können Ihr Passwort auch aus der URL herauslassen, damit Git nach Ihrem Passwort fragt, aber nicht nach Ihrem Benutzernamen.
Känguru
Es ist sehr einfach und sicher, SSH anstelle von HTTP zu verwenden. Sie können also Ihr Git-Passwort geheim halten und nur Ihren SSH-Key verwenden. Informationen zu SSH auf Git: help.github.com/de/enterprise/2.16/user/… [email protected]:Username/myRepo.git
Loïch
Wenn Sie Ihr Passwort in der URL haben, wird es im Verlauf Ihres Terminals gespeichert, sodass dieser Weg nicht sehr sicher ist.
Josh Correia
Beachten Sie, dass ein Wiki derzeit nur geklont werden kann https, nicht ssh, sodass eine solche Lösung dort nützlich sein kann. Beachten Sie auch, dass Sie ein Oauth-Token verwenden können, das geringfügig sicherer ist als Ihr GitHub-Passwort.
AstroFloyd
31

Ö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"

Auf diese Weise verwendet jedes lokale Git-Repo, das Sie auf Ihrem Computer haben, diese Informationen.

Sie können jedes Repo individuell konfigurieren, indem Sie Folgendes tun:

  • Ö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).

Tuananhcwrs
quelle
8
Ist es nicht gefährlich, solche Anmeldeinformationen in einer einfachen Konfigurationsdatei zu haben, die von jedermann angezeigt werden kann?
Bool3Max
1
Ihre Frage sollte für ein anderes Thema sein. Hier diskutieren wir, wie Name und Passwort für git global und lokal konfiguriert werden.
Tuananhcwrs
Vielen Dank für die Eingabe Kumpel
bool3max
11
Ich möchte nur hinzufügen, dass die Frage nach möglichen Sicherheitsproblemen einer Antwort hier einen Platz hat, da sie die Qualität direkt beeinflusst und möglicherweise Tausende von Benutzern sie implementieren.
Michael Kargl
2
funktioniert nicht für mich, --localTag hinzugefügt, aber wieder passiert nichts
PayamBeirami
23

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 gespeicherten Anmeldeinformationen überprüfen ~/.git-credentials

Weitere Informationen finden Sie unter git-credential-store - Hilfsprogramm zum Speichern von Anmeldeinformationen auf der Festplatte

David Navarro Astudillo
quelle
17

Sie sind sicherer, wenn Sie die SSH-Authentifizierung verwenden als die Authentifizierung mit Benutzername / Kennwort.

Wenn Sie einen Mac verwenden, ist die SSH-Clientauthentifizierung 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.

Birol Efe
quelle
1
sollte k nicht K sein?
dez93_2000
1
Zu Ihrer Information: Ich arbeite an einem Mac. Ausgehend von der "man" -Info: "-k" Wenn Sie Schlüssel in den Agenten laden oder Schlüssel aus dem Agenten löschen, verarbeiten Sie nur einfache private Schlüssel und überspringen Sie Zertifikate. "-K" Beim Hinzufügen von Identitäten wird jede Passphrase auch im Schlüsselbund des Benutzers gespeichert. Beim Entfernen von Identitäten mit -d wird jede Passphrase daraus entfernt.
Birol Efe
3
Ich denke nicht, dass dies für https-basierte Repositorys funktioniert.
Zakmck
5
Diese Antwort scheint Passwörter (HTTPS-Repos) mit privaten SSH-Schlüsseln zu verwechseln.
Steve Bennett
2
Ich stimme dir nicht zu. Sie können nicht sicherer sein, indem Sie dem Host einen SSHZugriff gewähren. Bei Verwendung der HTTP-Authentifizierung hätte nur jemand Zugriff, der die Anmeldeinformationen stiehlt GitHub/GitLab. Auch Token sind so konzipiert, dass sie eine begrenzte Lebensdauer haben.
Dimitri Kopriwa
16

Nachdem ich Dutzende von SO-Posts, Blogs usw. durchgesehen hatte, habe ich jede Methode ausprobiert , und das habe ich mir ausgedacht. Es umfasst alles.

Das Vanilla DevOps Git Anmeldeinformationen & Private Packages Cheatsheet

Dies sind alle Möglichkeiten und Tools, mit denen Sie git sicher authentifizieren können, um ein Repository ohne interaktive Kennwortabfrage 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 / eier anforderungen.txt
    • Rubin Edelsteine ​​Gemfile
    • golang go.mod

Die Silberkugel

Willst du Just Works ™? Dies ist die magische Silberkugel.

Holen Sie sich Ihr Zugriffstoken (siehe Abschnitt im Cheatsheet, wenn Sie dazu die Github- oder Gitea-Anweisungen benötigen) und legen Sie es in einer Umgebungsvariablen fest (sowohl für lokale Entwickler als auch für die Bereitstellung):

MY_GIT_TOKEN=xxxxxxxxxxxxxxxx

Kopieren Sie für Github diese Zeilen und führen Sie sie 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 automatisierten Tool-Klon-Git-Repositorys nicht mehr durch eine Kennwortabfrage behindert, egal ob Sie https oder einen der SSH-URL-Stile verwenden.

Verwenden Sie Github nicht?

Für andere Plattformen (Gitea, Github, Bitbucket) ändern Sie einfach die URL. Ändern Sie die Benutzernamen nicht (obwohl willkürlich, 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.

CoolAJ86
quelle
2
Dies ist ein Lebensretter. Vielen Dank.
Annaoomph
2
Was ich wollte, war git config --global credential."https://somegithost.com".username MyUserName, was in Ihrem Cheatsheet steht, aber nirgendwo anders in diesem Antwort-Thread. Diese spezielle Lösung beantwortet nicht die Frage des OP, aber sie beantwortet meine, also danke!
TheDudeAbides
1
Das ist wunderbar !!! Beste Antwort, vielen Dank.
Parsa
12

In diesem Fall benötigen Sie einen git-Anmeldeinformations-Helfer, um git über die folgende Befehlszeile anzuweisen, sich Ihr GitHub-Passwort und Ihren Benutzernamen zu merken:

git config --global credential.helper wincred 

Wenn Sie Repo mit SSH-Schlüssel verwenden, benötigen Sie zur Authentifizierung einen SSH-Schlüssel.

shaw
quelle
11

Keine der obigen Antworten hat bei mir funktioniert. Ich bekam jedes Mal Folgendes, wenn ich wollte fetchoder pull:

Enter passphrase for key '/Users/myusername/.ssh/id_rsa':


Für Macs

Ich konnte verhindern, dass ich meine Passphrase fragte, indem ich:

  1. Öffnen Sie die Konfiguration, indem Sie Folgendes ausführen: vi ~/.ssh/config
  2. Folgendes hinzugefügt: UseKeychain yes
  3. Gespeichert und beendet: Drücken Sie Esc und drücken Sie die Eingabetaste:wq!

Für Windows

Ich konnte es mithilfe der Informationen in diesem Stapelaustausch zum Laufen bringen: https://unix.stackexchange.com/a/12201/348665

Gene Parcellano
quelle
Dies liegt daran, dass Sie das SSH-Protokoll verwenden (andere Antworten verwenden HTTPS).
Marius
6

Abgesehen von der Bearbeitung der ~/.gitconfigDatei können Sie Folgendes tun:

git config --local --edit

oder

git config --global --edit

Hinweis, immer einfache 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 verwenden möglicherweise einige Zeichen, die Ihr Passwort beschädigen würden, wenn Sie doppelte Anführungszeichen verwenden.

--localoder --globalbedeutet, dass Konfigurationsparameter für das Projekt oder für den Betriebssystembenutzer gespeichert werden.

Prosti
quelle
Prüfen Sie auch diese ein , die noch erklärt.
Prosti
6

benutz einfach

git config --global credential.helper store

Wenn Sie den Git-Pull ausführen , werden Sie nach Benutzername und Passwort gefragt. Von nun an werden Sie nicht mehr nach Benutzername und Passwort gefragt, in denen die Details gespeichert werden

Srikanth Josyula
quelle
4
Sie haben die akzeptierte Antwort einfach wiederholt .
jsamol
4

Speichern Sie Benutzername und Passwort in .git-Anmeldeinformationen

.git-credentialsHier werden Ihr Benutzername und Ihr Kennwort (Zugriffstoken) beim Ausführen gespeichert git config --global credential.helper store. Dies wird von anderen Antworten vorgeschlagen. Geben Sie dann Ihren Benutzernamen und Ihr Kennwort oder Ihr Zugriffstoken ein:

https://${username_or_access_token}:${password_or_access_token}@github.com

Um den Benutzernamen und das Passwort (Zugriffstoken) zu speichern:

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. B. um automatisierte Chain-Builds im selben Docker-Repository zu lösen, indem Regeln für verschiedene Zweige festgelegt werden, und diese dann auszulösen, indem Sie in post_pushHooker im Docker-Hub darauf drücken .

Ein Beispiel hierfür finden Sie hier im Stackoverflow.

JiaHao Xu
quelle
Danke, du bist ein Lebensretter! Wir können auch https: // $ {access_token}: $ {access_token} @ github.com
Lucas Mendes Mota Da Fonseca
1
@ LucasMendesMotaDaFonseca Zugriffstoken kann als Benutzername verwendet werden ???
JiaHao Xu
3

Ein schneller Weg, um Git-Anmeldeinformationen zwischenzuspeichern:

git config credential.helper 'cache' --timeout=10800

schön und sicher

Zeitüberschreitung ist in Sekunden.

Amin Shojaei
quelle
2

Nachdem ich den Thread vollständig gelesen und mit den meisten Antworten auf diese Frage experimentiert hatte, fand ich schließlich das Verfahren, das für mich funktioniert. Ich möchte es teilen, falls sich jemand mit einem komplexen Anwendungsfall befassen muss, aber trotzdem nicht den gesamten Thread und die Manpages gitcredentials , gitcredentials-store usw. durchgehen möchte , wie ich es getan habe.

Unten finden Sie die Prozedur Ich schlage vor , WENN Sie (wie ich) mit mehreren Repositorys zu tun haben , von mehreren Anbietern (Gitlab, GitHub, Bitbucket, etc.) verschiedene Benutzername / Passwort - Kombinationen. Wenn Sie stattdessen nur ein einziges Konto zu Arbeit mit hat, dann könnten Sie besser dran , die Verwendung git config --global credential.helper storeoder git config --global user.name "your username"usw. Lösungen , die in früheren Antworten erklärten sehr gut gewesen sein.

Meine Lösung:

  1. Helfer für nicht festgelegte globale Anmeldeinformationen, falls frühere Experimente im Weg stehen :)

> git config --global --unset credentials.helper

  1. Wechseln Sie in das Stammverzeichnis Ihres Repos und deaktivieren Sie den lokalen Helfer für Anmeldeinformationen (falls erforderlich).

> cd /path/to/my/repo

> git config --unset credential.helper

  1. Erstellen Sie eine Datei, in der die Anmeldeinformationen Ihres Repos gespeichert werden

> git config credential.helper 'store --file ~/.git_repo_credentials'

Hinweis : Dieser Befehl erstellt eine neue Datei mit dem Namen ".git_repo_credentials" in Ihrem Home-Verzeichnis, in der Git Ihre Anmeldeinformationen speichert. Wenn Sie keinen Dateinamen angeben, verwendet Git die Standardeinstellung ".git_credentials". In diesem Fall reicht es aus, einfach den folgenden Befehl auszugeben:

> git config credential.helper store

  1. Legen Sie Ihren Benutzernamen fest

git config credential.*.username my_user_name

Hinweis : Die Verwendung von "*" ist normalerweise in Ordnung, wenn Ihre Repositorys vom selben Anbieter stammen (z. B. GitLab). Wenn Ihre Repositorys stattdessen von verschiedenen Anbietern gehostet werden, empfehle ich, den Link zum Anbieter für jedes Repository explizit festzulegen, wie im folgenden Beispiel (für GitLab):

git config credential.https://gitlab.com.username my_user_name

Wenn Sie an dieser Stelle einen Befehl git pulleingeben, für den Ihre Anmeldeinformationen erforderlich sind (z. B. ), werden Sie nach dem Kennwort gefragt, das "my_user_name" entspricht. Dies ist nur einmal erforderlich, da git die Anmeldeinformationen in ".git_repo_credentials" speichert und bei nachfolgenden Zugriffen automatisch dieselben Daten verwendet.

Sal Borrelli
quelle
2

Aus dem Kommentar von rifrol unter Linux Ubuntu und aus dieser Antwort geht Folgendes in Ubuntu hervor:

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, sodass Sie sie nicht erstellen müssen.

In OS X wird es normalerweise mit einem Standardmodul von "osxkeychain" "erstellt", sodass Sie es kostenlos erhalten.

Rogerdpack
quelle
2

Überprüfen Sie die offizielle Git-Dokumentation:

Wenn Sie den SSH-Transport für die Verbindung zu Fernbedienungen verwenden, können Sie einen Schlüssel ohne Passphrase haben, mit dem Sie Daten sicher übertragen können, ohne Ihren Benutzernamen und Ihr Kennwort einzugeben. Dies ist jedoch mit den HTTP-Protokollen nicht möglich - jede Verbindung benötigt einen Benutzernamen und ein Passwort. Dies wird noch schwieriger für Systeme mit Zwei-Faktor-Authentifizierung, bei denen das für ein Kennwort verwendete Token zufällig generiert und nicht aussprechbar ist.

Glücklicherweise verfügt Git über ein Anmeldeinformationssystem, das dabei helfen kann. Git bietet einige Optionen in der Box:

  • Standardmäßig wird überhaupt nicht zwischengespeichert. Bei jeder Verbindung werden Sie zur Eingabe Ihres Benutzernamens und Passworts aufgefordert.

  • Der Cache-Modus speichert Anmeldeinformationen für einen bestimmten Zeitraum im Speicher. Keines der Passwörter wird jemals auf der Festplatte gespeichert und nach 15 Minuten aus dem Cache gelöscht.

  • Im Speichermodus werden die Anmeldeinformationen in einer Nur-Text-Datei auf der Festplatte gespeichert und verfallen nie. Dies bedeutet, dass Sie Ihre Anmeldeinformationen nie wieder eingeben müssen, bis Sie Ihr Kennwort für den Git-Host geändert haben. Der Nachteil dieses Ansatzes ist, dass Ihre Passwörter im Klartext in einer einfachen Datei in Ihrem Home-Verzeichnis gespeichert werden.

  • Wenn Sie einen Mac verwenden, verfügt Git über einen "osxkeychain" -Modus, in dem Anmeldeinformationen im sicheren Schlüsselbund zwischengespeichert werden, der an Ihr Systemkonto angehängt ist. Diese Methode speichert die Anmeldeinformationen auf der Festplatte und läuft nie ab. Sie werden jedoch mit demselben System verschlüsselt, auf dem HTTPS-Zertifikate und automatische Safari-Ausfüllungen gespeichert sind.

  • Wenn Sie Windows verwenden, können Sie einen Hilfsprogramm namens "Git Credential Manager für Windows" installieren. Dies ähnelt dem oben beschriebenen "osxkeychain" -Helfer, verwendet jedoch den Windows Credential Store, um vertrauliche Informationen zu steuern. Es kann unter https://github.com/Microsoft/Git-Credential-Manager-for-Windows gefunden werden .

Sie können eine dieser Methoden auswählen, indem Sie einen Git-Konfigurationswert festlegen:

$ git config --global credential.helper cache

$ git config --global credential.helper store

https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

Sma Ma
quelle