Start·Fehlermeldungen

ssh · Git

Die Meldung

git@github.com: Permission denied (publickey).

Was es bedeutet

ssh hat den Server erreicht, aber keinen Schlüssel angeboten, den der Server akzeptiert — es geht um Authentifizierung, nicht um Netzwerk. Das passiert, wenn Sie keinen Schlüssel erzeugt haben, wenn Sie einen haben, ihn aber nie in den ssh-agent geladen haben, oder wenn der öffentliche Schlüssel nicht in Ihrem Konto bei diesem Dienst eingetragen ist. ssh-add ~/.ssh/id_ed25519 lädt den Schlüssel für diese Sitzung in den Agenten, und ssh -T git@github.com meldet, welcher Schlüssel versucht wurde und als wer Sie erkannt werden. Beide Befehle lesen nur; es gibt nichts zu verlieren.

Die Lösung

ssh-add ~/.ssh/id_ed25519
Ausgegeben von
ssh
Git
29

Fast jeder git-Fehler ist eine Verweigerung im Sinne von „das aus diesem Zustand zu tun würde etwas verlieren“; fatal: heißt, git hat ohne jede Änderung abgebrochen, und die hint:-Zeilen unter der ersten enthalten meist die eigentliche Lösung.

Eine Fehlermeldung lesen

  • Von der ersten Zeile abwärts lesen. Weiter unten geht es um das Innere des Werkzeugs; die Ursache steht meist oben.
  • Gibt es Datei und Zeilennummer, dort anfangen — nicht der oberste Stack-Frame, sondern die oberste Zeile, die eine eigene Datei nennt.
  • Die Meldung wörtlich suchen, vorher aber eigene Pfade und Variablennamen entfernen; genau die verhindern den Treffer.
  • Dieselbe Lage wird je Werkzeugversion anders formuliert. Passen die Treffer nicht, die Versionsnummer mit in die Suche.
  • Vor dem Einfügen einer Lösung prüfen, was sie verwirft. Manches davon lässt sich nicht zurückholen.

Häufige Fragen

Q. Was bedeutet „git@github.com: Permission denied (publickey).“?

ssh hat den Server erreicht, aber keinen Schlüssel angeboten, den der Server akzeptiert — es geht um Authentifizierung, nicht um Netzwerk. Das passiert, wenn Sie keinen Schlüssel erzeugt haben, wenn Sie einen haben, ihn aber nie in den ssh-agent geladen haben, oder wenn der öffentliche Schlüssel nicht in Ihrem Konto bei diesem Dienst eingetragen ist. ssh-add ~/.ssh/id_ed25519 lädt den Schlüssel für diese Sitzung in den Agenten, und ssh -T git@github.com meldet, welcher Schlüssel versucht wurde und als wer Sie erkannt werden. Beide Befehle lesen nur; es gibt nichts zu verlieren.

Q. Wie behebe ich das?

ssh-add ~/.ssh/id_ed25519 — vor dem Ausführen oben prüfen, was dieser Befehl verwirft.

Q. Welches Werkzeug gibt das aus?

ssh. Es gehört zu Git, und die Meldung hat 4 Wörter.

Verwandte Fehler