1171 Stimmen

Git: Wie löst man den Fehler "Permission denied (publickey)" bei der Verwendung von Git?

Ich habe einen Mac Snow Leopard und habe gerade git .

Ich habe gerade versucht

git clone git@thechaw.com:cakebook.git

aber das gibt mir diese Fehlermeldung:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

Was übersehe ich?
Ich habe auch versucht ssh-keygen ohne Passphase, aber immer noch derselbe Fehler.

14 Stimmen

Haben Sie versucht, den öffentlichen Schlüssel, den Sie mit ssh-keygen erzeugt haben, hochzuladen?

0 Stimmen

Mein Problem war, dass ich versucht habe, von sudo - dies ist ein anderer Benutzer mit einem anderen öffentlichen Schlüssel.

0 Stimmen

Derselbe Fehler. Ich habe zuvor einen öffentlichen Schlüssel über Github erstellt und dann ein weiteres Schlüsselpaar mit dem ssh-keygen Nutzen. Das Löschen des alten öffentlichen Schlüssels in den persönlichen Einstellungen auf Github und das Hinzufügen meines per SSH generierten Schlüssels id_rsa.pub zu den SSH- und GPG-Schlüsseln hat die Probleme mit der Klonberechtigung behoben.

1voto

WickedW Punkte 2203

Ich habe eine ähnliche Fehler: Berechtigung verweigert (publickey) wenn Sie versuchen, ein Makefile auszuführen.

Alternativ zu den obigen SSH-Schritten können Sie auch die native Anwendung GitHub für Mac installieren.

Klicken Sie auf GitHub für Mac herunterladen von. https://help.github.com/articles/set-up-git#platform-mac

Sobald Sie die Einrichtung Ihres Git-Hub-Kontos abgeschlossen haben (ich habe auch die Git-Hub-Befehlszeilentools installiert, bin mir aber nicht sicher, ob dieser Schritt erforderlich ist oder nicht), erhielt ich eine E-Mail -

[GitHub] Ein neuer öffentlicher Schlüssel wurde zu Ihrem Konto hinzugefügt

und mein Fehler war behoben.

1voto

Black Mamba Punkte 11092

Für mich bestand das Problem darin, dass ich sudo :

sudo git clone git@github.com:userName/repo.git führte zu dem oben erwähnten Fehler.

Um das Problem zu beheben, habe ich den Ordner, den ich zu klonen versuchte, mit einem chownamen versehen

sudo chown -R $USER:$USER /var/www/iqge.org/html

dann mit diesem git clone git@github.com:userName/repo.git wurde erfolgreich durchgeführt

1voto

BuvinJ Punkte 8973

Ich habe den gleichen Fehler erhalten. Mein Problem war das Mischen in sudo.

Ich konnte das Verzeichnis, in das ich klonen wollte, nicht automatisch erstellen, ohne dem Befehl git clone sudo voranzustellen. Als ich das tat, wurden meine ssh-Schlüssel jedoch nicht richtig referenziert.

Um das Problem zu beheben, setzte ich per chmod die Berechtigungen für das übergeordnete Verzeichnis, das meinen Klon enthalten sollte, so dass ich in dieses Verzeichnis schreiben konnte. Dann habe ich git clone OHNE ein sudo-Präfix ausgeführt. Es hat dann funktioniert! Danach habe ich die Berechtigungen wieder zurückgesetzt. Das war's.

1voto

Charles Brunet Punkte 19957

Ich habe diese Fehlermeldung erhalten, weil ich die ssh-Schlüssel mit der falschen E-Mail generiert habe. Ich konnte mich mit ssh verbinden, aber nicht mit Git. Die Lösung war, die Schlüssel mit der Haupt-E-Mail-Adresse meines Github-Kontos neu zu generieren.

1voto

Fanco Punkte 44

Nachdem er ssh-keygen Teil, können Sie die Verifizierung unten überprüfen:

  1. $ ssh -T git@github.com um Ihre SSH-Verbindung zu testen;

  2. Bestätigen Sie, welcher Benutzer den Befehl "ssh-keygen" ausgeführt hat. Der öffentliche Schlüssel, den Sie erzeugt haben, wird von diesem Benutzer verfolgt. Der Grund dafür ist unten angegeben:

Sollte der Befehl sudo mit Git verwendet werden?

Sie sollten den Befehl sudo nicht mit Git verwenden. Wenn Sie einen triftigen Grund haben, sudo zu verwenden, dann stellen Sie sicher, dass Sie es bei jedem Befehl verwenden (es ist wahrscheinlich besser, su zu verwenden, um eine Shell als Root zu erhalten). Wenn Sie SSH-Schlüssel ohne sudo erzeugen und dann versuchen, einen Befehl wie sudo git push zu verwenden, werden Sie nicht die gleichen Schlüssel verwenden, die Sie erzeugt haben.

  1. Stellen Sie sicher, dass Sie Schreibrechte für das Verzeichnis haben, in das das Repository geklont wird. Wenn nicht, dann tun Sie es. Und Sie müssen den aktuellen Benutzer durch Abmelden oder su usw. nach der Aktualisierung der Benutzergruppenberechtigung.

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