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?

Wirbelwind
quelle
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 [email protected]:id_rsa.tmp
$ ssh [email protected]
$ 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/

Jin
quelle
@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

Thunderbird
quelle
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

wischen
quelle
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 [email protected]:sshare/GLE.git
rj45
quelle