361 Stimmen

Push zu GitHub ohne Passwort mit ssh-key

Ich habe ein SSH-Schlüsselpaar ohne Passwort erzeugt und den öffentlichen Schlüssel zu GitHub hinzugefügt.

Verbindung mit

user@dev:/var/www/project# ssh -T git@github.com
Hi User! You've successfully authenticated, but GitHub does not provide shell access.

war erfolgreich, und wenn ich den Schlüssel umbenenne, schlägt es fehl.

Aber wenn ich meine Änderungen pushen will, werde ich immer noch nach der Kombination aus Benutzernamen und Passwort gefragt.

Gibt es eine Möglichkeit, ohne Passwort zu pushen?

713voto

manojlds Punkte 273771

Wenn es Sie nach einer Nutzername und Passwort, verweist Ihre Ursprungs-Remote auf die HTTPS-URL und nicht auf die SSH-URL.

Ändern Sie es in ssh.

Ein GitHub-Projekt wie Git hat zum Beispiel eine HTTPS-URL:

https://github.com/<Username>/<Project>.git

Und die SSH-Anwendung:

git@github.com:<Username>/<Project>.git

Das können Sie tun:

git remote set-url origin git@github.com:<Username>/<Project>.git

um die URL zu ändern.

33voto

Yuci Punkte 22138

Für den Fall, dass Sie zwar die SSH-URL verwenden, aber trotzdem beim Git-Pushing nach Benutzernamen und Passwort gefragt werden:

git remote set-url origin git@github.com:<Username>/<Project>.git

Versuchen Sie es mit der Fehlersuche:

ssh -vT git@github.com

Nachstehend finden Sie ein Beispiel für die Ausgabe:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_dsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ecdsa
debug1: Trying private key: /c/Users/Yuci/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).

Ich habe den öffentlichen Schlüssel bereits zu GitHub hinzugefügt, und ich habe auch den privaten Schlüssel lokal. Allerdings hat mein privater Schlüssel einen anderen Namen namens /c/Users/Yuci/.ssh/github_rsa .

Laut der Beispielausgabe versucht Git /c/Users/Yuci/.ssh/id_rsa die ich nicht habe. Daher könnte ich einfach kopieren github_rsa a id_rsa in demselben Verzeichnis.

cp /c/Users/Yuci/.ssh/github_rsa /c/Users/Yuci/.ssh/id_rsa

Wenn ich jetzt ssh -vT git@github.com Ich habe es wieder getan:

...
debug1: Trying private key: /c/Users/Yuci/.ssh/id_rsa
debug1: Authentication succeeded (publickey).
...
Hi <my username>! You've successfully authenticated, but GitHub does not provide shell access.
...

Und jetzt kann ich zu GitHub pushen, ohne nach Benutzername und Passwort gefragt zu werden :-)

18voto

Seeni Punkte 1354

Erstellen Sie wie üblich einen SSH-Schlüssel und fügen Sie den öffentlichen Schlüssel auf GitHub ein. Fügen Sie den privaten Schlüssel zu ssh-agent hinzu. (Ich gehe davon aus, dass Sie dies bereits getan haben.)

Um zu überprüfen, ob alles korrekt ist, verwenden Sie ssh -T git@github.com

Vergessen Sie dann nicht, den entfernten Punkt wie folgt zu ändern:

git remote set-url origin git@github.com:username/your-repository.git

16voto

Gordon Wells Punkte 336

Außerdem müssen Sie bei Gists anscheinend den Benutzernamen weglassen

git remote set-url origin git@gist.github.com:<Project code>

10voto

Hazarapet Tunanyan Punkte 2711

Sie müssen die SSH Version, nicht HTTPS . Wenn Sie aus einem Repository klonen, kopieren Sie den Link mit der SSH Version, weil SSH einfach zu benutzen ist und alle Probleme mit dem Zugang löst. Sie können den Zugang für jedes SSH, das Sie in Ihr Konto eingeben, einstellen (wie Push, Pull, Clone, etc...)

Hier ist ein Link, der erklärt, warum wir SSH brauchen und wie man es benutzt: Schritt für Schritt

Git SSH-Schlüssel generieren

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