Ich habe kürzlich ein Problem: Jedes Mal, wenn ich versuche, auf das Git-Repository zu pushen (in meinem Fall Bitbucket), wird folgende Fehlermeldung angezeigt:
$ git push origin master [email protected]: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
Ich habe einen Weg gefunden, dies durch Ausführen der folgenden Befehle zu lösen:
eval `ssh-agent` ssh-add -l ssh-add ~/.ssh/id_rsa
Wenn ich dies tue, versuche ich, git push origin master
, es wird funktionieren. Das Problem ist jedoch, dass dieses Problem nach einiger Zeit auftritt (wahrscheinlich nach dem Neustart bin ich mir nicht sicher, warum es erneut angezeigt wird). UPD: Es wird höchstwahrscheinlich nicht durch einen Neustart verursacht, da ich es gerade erst gesehen habe 10 Minuten nach dem Ausführen des obigen Codes und dem gleichen Fehler. Ich habe meinen Laptop seitdem nicht mehr neu gestartet.
Was kann ein solches Verhalten verursachen und wie kann ich das beheben?
Kommentare
- 1. conjuence.atlassian.com/bbkb/… 2. konfluenz.atlassian.com/bitbucket/…
- " Schlüssel, die über ssh zum Schlüsselbund hinzugefügt wurden -add -K werden dem ssh-agent nach einem Neustart nicht automatisch neu hinzugefügt. " Haben Sie die Lösungen von github ausprobiert? .com / jirsbek / SSH-Schlüssel-in-macOS-Sierra-Schlüsselbund ?
Antwort
Ich denke, das passiert, weil Sie bei der Generierung Ihres SSH-Schlüssels aus Sicherheitsgründen eine Passphrase eingegeben haben. Wenn Sie den ssh-Agenten starten und ssh / rsa_id hinzufügen, sollte dies der Passphrase entsprechen.
[root@user xxxxx]# eval "$(ssh-agent -s)" Agent pid 12082 [root@user xxxxx]# ssh-add /home/user/.ssh/id_rsa Enter passphrase for /home/user/.ssh/id_rsa: Identity added: /home/user/.ssh/id_rsa (/home/user/.ssh/id_rsa) git push -u origin master Counting objects: 94, done.
Antwort
Okay, ich habe vergessen, das Problem zu posten: Ich habe versehentlich meinen Schlüssel für alle Hosts in ~/.ssh/config
auf einen anderen Server gesetzt. Daher wurde er für die Verbindung verwendet Alle Hosts anstelle des richtigen. Ich habe es für alle Hosts gelöscht und nur für die Hosts eingerichtet, für die dieser Schlüssel erforderlich war, und es wurde behoben.
Hoffe, dass es für andere hilfreich ist.