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.