Wie deaktiviere ich Passwortabfragen, wenn ich Git Push / Pull mache?


34

Jedes Mal , wenn ich will pushund / oder pullvom Terminal (in Linux) Ich habe ein Passwort einzugeben. Wie entferne ich das, damit es ohne das Passwort zieht und / oder drückt?


5
Welches Protokoll wird von Ihrer Repo-Adresse verwendet? ssh? https?
— Vom

Antworten:


23

Generieren Sie ein privates / öffentliches Schlüsselpaar für die kennwortlose Authentifizierung.

Für Linux werden Ihre Schlüssel in gespeichert ~/.ssh.

Wenn Sie bereits Dateien mit ~/.sshdem Namen id_rsaund haben id_rsa.pub, haben Sie bereits ein Schlüsselpaar. Hängen Sie den Inhalt Ihres öffentlichen Schlüssels id_rsa.puban die Datei ~ / .ssh / authorized_keys des Git-Repository an.

$ scp ~/.ssh/id_rsa.pub user@git.repo:id_rsa.tmp
$ ssh user@git.repo
$ cat id_rsa.tmp >> .ssh/authorized_keys

Wenn Sie kein Schlüsselpaar haben, generieren Sie eines mit

$ ssh-keygen -t rsa

Lesen Sie dies für weitere Anweisungen: http://inchoo.net/tools-frameworks/how-to-generate-ssh-keys-for-git-authorization/


@slhck Ah, daran habe ich nicht gedacht! Es ist jedoch gut zu wissen, welches Betriebssystem whirlwin verwendet, bevor Sie weitere Anweisungen veröffentlichen.
— Jin

Danke für den Hinweis. Ich habe die Frage entsprechend aktualisiert!
— Whirlwin

1
Wenn ich den ersten Befehl ausführe, erhalte ich Folgendes: Sie verwenden anscheinend ssh, um eine git: // URL zu klonen. Stellen Sie sicher, dass Ihre Option core.gitProxy config und die Umgebungsvariable GIT_PROXY_COMMAND NICHT festgelegt sind. Verbindung verloren
— MultiformeIngegno

25

Lauf

git config credential.helper store

Dadurch werden Ihre Anmeldeinformationen in einem Ordner im Stammverzeichnis gespeichert. Nach diesem Befehl müssen Sie git pull / push ausführen und zum ersten Mal den Benutzernamen / pwd eingeben. Poste dies, es wird nicht nach user / pwd gefragt. Details unter https://git-scm.com/docs/git-credential-store


4
Dies sollte als richtige Antwort für diese Frage ausgewählt werden. IMO wollte das OP nach einer Lösung fragen, um httpszu vermeiden, dass Benutzername / Passwort immer wieder eingegeben werden müssen und nicht zur sshLösung gewechselt wird. 1+ für diese Antwort.
— Giang Nguyen

1
Beachten Sie, dass der Hilfsprogramm zum Speichern von Anmeldeinformationen das Kennwort unverschlüsselt auf der Festplatte speichert.
— 0xc0de

6

Sie können Ihre Passphrase auch einfach ändern und durch eine leere Zeichenfolge ersetzen:
ssh-keygen -p


3
ist das nicht sehr falsch da es keine sicherheit mehr geben wird
— titus

3
Vielen Dank. Dies ist die Lösung für Benutzer, die über eine SSH-Schlüsselkonfiguration verfügen, sich jedoch nicht sicher sind, warum sie immer noch eine Passphrase eingeben müssen.
— Cory Danielson

Die sicherere Alternative dazu ist die Verwendung eines SSH-Agenten. superuser.com/questions/426749/ssh-agent-and-ssh-add
— Jay R. Wren

1

Ich hatte eine neue Filiale angelegt und musste danach beim Ziehen den Benutzernamen und das Passwort eingeben. Anschließend behebe ich das Problem beim erneuten Klonen des Zweigs mit der SSH-Adresse (die sich auf der entsprechenden Repository-Site befindet).

Beispielsweise:

git clone git@github.com:sshare/GLE.git
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.