423 Stimmen

Wie vermeide ich die Angabe des Benutzernamens und des Passworts bei jedem Git-Push?

I git push meine Arbeit in ein entferntes Git-Repository.

Alle push wird mich zur Eingabe auffordern username y password . Ich möchte das bei jedem Push vermeiden, aber wie kann ich das konfigurieren, um es zu vermeiden?

454voto

First Zero Punkte 20290

1. Erzeugen Sie einen SSH-Schlüssel

Linux/Mac

Öffnen Sie das Terminal, um ssh-Schlüssel zu erstellen:

cd ~                 #Your home directory
ssh-keygen -t rsa    #Press enter for all values

Für Windows

(Funktioniert nur, wenn das Commit-Programm in der Lage ist, Zertifikate/private und öffentliche ssh-Schlüssel zu verwenden)

  1. Putty Gen verwenden, um einen Schlüssel zu erzeugen
  2. Exportieren Sie den Schlüssel als offenen SSH-Schlüssel

Hier ist ein Durchgang auf putty gen für die oben genannten Schritte

2. Verknüpfen Sie den SSH-Schlüssel mit dem entfernten Repository

Dieser Schritt hängt davon ab, wie Ihre Fernbedienung eingerichtet ist.

  • Wenn es sich um ein GitHub-Repository handelt und Sie über administrative Rechte verfügen, gehen Sie zu Einstellungen und klicken Sie auf 'SSH-Schlüssel hinzufügen'. Kopieren Sie den Inhalt Ihres ~/.ssh/id_rsa.pub in das Feld "Schlüssel" ein.

  • Wenn Ihr Repository von jemand anderem verwaltet wird, geben Sie dem Administrator Ihre id_rsa.pub .

  • Wenn Ihr entferntes Repository von your verwaltet wird, können Sie zum Beispiel diesen Befehl verwenden:

    scp ~/.ssh/id_rsa.pub YOUR_USER@YOUR_IP:~/.ssh/authorized_keys/id_rsa.pub

3. Setzen Sie Ihre Remote-URL auf ein Formular, das SSH unterstützt 1

Wenn Sie die obigen Schritte durchgeführt haben und immer noch die Passwortabfrage erhalten, stellen Sie sicher, dass Ihre Repo-URL die folgende Form hat

git+ssh://git@github.com/username/reponame.git

im Gegensatz zu

https://github.com/username/reponame.git

Um die URL Ihres Repos zu sehen, führen Sie aus:

git remote show origin

Sie können die URL mit ändern:

git remote set-url origin git+ssh://git@github.com/username/reponame.git

[1] Dieser Abschnitt enthält die Antwort von <a href="https://stackoverflow.com/users/1094910/eric-p">Eric P.</a>

228voto

Jaykumar Patel Punkte 25455

Permanente Authentifizierung mit Git-Repositories,

Führen Sie den folgenden Befehl aus, um die Zwischenspeicherung von Anmeldeinformationen zu aktivieren.

$ git config credential.helper store
$ git push https://github.com/repo.git

Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>

Die Verwendung sollte auch angeben Caching ablaufen lassen ,

git config --global credential.helper 'cache --timeout 7200'

Nach dem Aktivieren der Zwischenspeicherung von Anmeldeinformationen werden diese zwischengespeichert für 7200 Sekunden (2 Stunden) .

Note : Credential Helper speichert ein unverschlüsseltes Kennwort auf einem lokalen Datenträger.

128voto

Eric P Punkte 4427

Wenn Sie Ihre SSH-Schlüssel bereits eingerichtet haben und immer noch die Passwortabfrage erhalten, stellen Sie sicher, dass Ihre Repo-URL in der Form

git+ssh://git@github.com/username/reponame.git

im Gegensatz zu

https://github.com/username/reponame.git

Um die URL Ihres Repos zu sehen, führen Sie aus:

git remote show origin

Sie können die URL ändern mit git remote set-url etwa so:

git remote set-url origin git+ssh://git@github.com/username/reponame.git

42voto

Pavel Punkte 629

Verwenden Sie einfach --repo Option für den Befehl git push. Etwa so:

$ git push --repo https://name:password@bitbucket.org/name/repo.git

35voto

serv-inc Punkte 32204

Unbefristetes Sparen

Sie können die git-credential-store を経て

git config credential.helper store

die speichert Ihr Passwort unverschlüsselt im Dateisystem :

Mit diesem Hilfsmittel werden Ihre Kennwörter unverschlüsselt auf der Festplatte gespeichert und nur durch Dateisystemberechtigungen geschützt. Wenn dies kein akzeptabler Sicherheitskompromiss ist, versuchen Sie es mit git-credential-cache oder suchen Sie nach einem Hilfsmittel, das mit dem von Ihrem Betriebssystem bereitgestellten sicheren Speicher integriert werden kann.

Mit einer Zeitüberschreitung

Verwenden Sie die git-credential-cache die das Kennwort standardmäßig 15 Minuten lang speichert.

git config credential.helper cache

um ein anderes Zeitlimit einzustellen, verwenden Sie --timeout (hier 5 Minuten)

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

Sicheres Sparen auf unbestimmte Zeit (OS X und Windows)

  • Wenn Sie einen Mac verwenden, wird Git mit einem "osxkeychain"-Modus die Anmeldeinformationen im sicheren Schlüsselbund zwischenspeichert, der mit Ihrem Systemkonto verknüpft ist. Bei dieser Methode werden die Anmeldeinformationen auf der Festplatte gespeichert und laufen nie ab, aber sie werden mit demselben System verschlüsselt, das auch HTTPS-Zertifikate und Safari-Auto-Fills speichert. Wenn Sie das Folgende in der Befehlszeile ausführen, wird diese Funktion aktiviert: git config --global credential.helper osxkeychain . Sie müssen die Anmeldedaten auch im Schlüsselbund speichern, indem Sie die Schlüsselbund-App verwenden.
  • Wenn Sie Windows verwenden, können Sie Installieren Sie ein Hilfsmittel namens "Git Credential Manager für Windows". Dies ähnelt dem oben beschriebenen "osxkeychain"-Helfer, verwendet aber den Windows Credential Store, um sensible Informationen zu kontrollieren. Sie kann gefunden werden unter https://github.com/Microsoft/Git-Credential-Manager-for-Windows . [Hervorhebungen von mir]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X