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.

30voto

Gopala raja naika Punkte 1659

Bitte versuchen Sie dies, wenn nichts klappt

  1. Persönliches Access-Token generieren ( Setting -> Developer settings -> Personal access tokens -> Generate new token )
  2. git remote set-url origin https://<TOEKN>@github.com/USERNAME/REPOSITORY.git

Hinweis: Wenn ein Passwort-Popup erscheint, versuchen Sie, nur das Token einzugeben (versuchen Sie es zweimal).

4 Stimmen

Dies ist eine der einfachsten Methoden, die ich gefunden habe, um ein Repository zu klonen. Vielen Dank. git clone https://<TOEKN>@github.com/USERNAME/REPOSITORY.git

26voto

Mason Bryant Punkte 1352

Beachten Sie, dass (zumindest bei einigen Projekten) Sie müssen ein github-Konto mit einem ssh-Schlüssel haben .

Schauen Sie sich die Schlüssel an, die in Ihrem Authentifizierungsagenten ( ssh-add -l )
(wenn Sie keinen sehen, fügen Sie einen Ihrer vorhandenen Schlüssel mit ssh-add /pfad/zu/ihr/schlüssel hinzu (z. B: ssh-add ~/.ssh/id_rsa ))
(Wenn Sie noch keine Schlüssel haben, erstellen Sie zunächst einen. Siehe: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html oder einfach ssh-keygen googeln)

So überprüfen Sie, ob Sie einen Schlüssel haben, der mit Ihrem Github-Konto verknüpft ist :

Gehen Sie zu: https://github.com/settings/ssh

Sie sollten mindestens einen Schlüssel mit einem Hash-Schlüssel sehen, der mit einem der Hashes übereinstimmt, die Sie bei der Eingabe von ssh-add -l gerade vor einer Minute.

Wenn das nicht der Fall ist, fügen Sie eine hinzu und versuchen Sie es erneut.

0 Stimmen

Sie wissen, dass Sie dieses Problem haben, wenn Sie aufgefordert werden, sich mit einem SSH-Schlüssel zu verbinden (die Url sieht aus wie git@github.company.com anstelle von https://github.company.com ), aber Ihre Github-Einstellungen haben keinen SSH-Schlüssel. Github bietet eine Schritt-für-Schritt-Anleitung unter docs.github.com/de/github/authenticating-to-github/ .

20voto

Satishakumar Awati Punkte 3276

Dies sind die Schritte, die ich in Windows 10 befolgt habe

  1. Git Bash öffnen.

  2. Öffentlichen Schlüssel generieren:

    ssh-keygen -t rsa -b 4096 -C "youremailaddress@xyz.com"
  3. Erstellten Schlüssel in die Zwischenablage kopieren (funktioniert wie CTRL+C)

    clip < ~/.ssh/id_rsa.pub
  4. Browser, gehen Sie zu Github => Profil=> Einstellungen => SSH und GPG Schlüssel => Schlüssel hinzufügen

  5. Geben Sie den Schlüsselnamen an und fügen Sie die Zwischenablage ein (STRG+V).

  6. Testen Sie schließlich Ihre Verbindung (Git bash)

    ssh -T git@github.com

enter image description here

Gracias.

1 Stimmen

Genau die richtige Antwort!!! Funktioniert perfekt.

19voto

William Hu Punkte 14260

Ich hatte das gleiche Problem, weil ich dachte, der Unterschied zwischen SSH y HTTPS es

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

Ich wechselte also von HTTPS a SSH nur durch Änderung https:// a ssh:// Am Ende der URL wurde nichts geändert.

Aber die Wahrheit ist:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

Das heißt, ich habe ssh://github.com/USERNAME/REPOSITORY.git a git@github.com:USERNAME/REPOSITORY.git es funktioniert.

Dummer Fehler, aber hoffentlich hilft er jemandem!

0 Stimmen

Ja, ich habe mich geändert. ssh://github.com/USERNAME/REPOSITORY.git a git@github.com:USERNAME/REPOSITORY.git es funktioniert.

0 Stimmen

Ich sehe, weil ich nur die ssh anstelle von https Also änderte ich 'https://' in 'ssh://`, dann bekam ich den Fehler. Also ändere 'ssh://git/../` in 'git@../' : ) Habe meine Antwort bearbeitet.

0 Stimmen

Das funktioniert bei mir. Ich danke Ihnen vielmals! Ich habe es mit https und dann mit ssh versucht, aber es verweigert mir immer noch den Zugriff, bis ich es auf Ihre Weise mit "git clone git@github.com:/myusername/myproject.git" mache.

13voto

Richipal Punkte 711

Ich hatte eine etwas andere Situation, ich war auf einem entfernten Server angemeldet und benutzte git auf dem Server, wenn ich einen git-Befehl ausführte, erhielt ich die gleiche Meldung

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

Ich habe das Problem gelöst, indem ich die Datei /etc/ssh_config auf meinem Mac geändert habe. von

ForwardAgent no 

a

ForwardAgent yes

0 Stimmen

Der Fehler trat beim Versuch auf, Edelsteine aus Github von einer VirtualBox VM zu holen. Ich habe mein Vagrantfile aktualisiert und verwende config.ssh.forward_agent = true , startete die VM neu, und jetzt funktioniert es.

1 Stimmen

Dies könnte in Bezug auf die Sicherheit nicht die beste Wahl sein: heipei.github.io/2015/02/26/

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