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.

12voto

Hrvoje Punkte 9859

PRÜFEN SIE IMMER GITHUB FÜR SSH-KEYS GENERATION PROCEDUR, NICHT EINIGE VERALTETE BLOG

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

Dort können Sie sehen, dass die Schlüssel mit erzeugt werden:

ssh-keygen -t ed25519 -C "your_email@example.com"

Der Algorithmus lautet also ed25519 nicht rsa oder etwas anderes.

1 Stimmen

Ich habe einige alte RSA-Schlüssel verwendet, die nicht funktioniert haben, weil es ed25519 sein muss, wie Sie angegeben haben. Vielen Dank für diesen Hinweis. Ihr Befehl hat den Trick gemacht, ohne Passwort.

10voto

KeshavDulal Punkte 1991

Lösung mit gh d.h. Die offizielle CLI von Github

gh-Installation

brew install gh

gh Anmeldung oder Authentifizierung über cli

gh auth login

Repo-Klon

gh repo clone <username or orgname>/<repo-name>

Ejemplo: gh repo clone keshavdulal/sample-repo

Schimpfen: Auch ich habe mir den Kopf zerbrochen, als git clone plötzlich beschlossen, nicht mehr zu arbeiten, und ich habe nicht die Geduld oder Brainpower zu ssh / öffentliche Schlüssel / Kryptographie von Grund auf neu zu lernen, nur um eine verdammte Repo klonen ich bereits Zugang zu haben. Auch überrascht, dass niemand erwähnt gh in den Antworten noch nicht

9voto

Kandarp Punkte 575

Ich musste meine ssh-Schlüssel in den Root-Ordner kopieren. Google Cloud Compute Engine unter Ubuntu 18.04

sudo cp ~/.ssh/* /root/.ssh/

8voto

vikram jeet singh Punkte 3226

Leute, so hat es bei mir funktioniert:

  1. Öffnen Sie das Terminal und gehen Sie zum Benutzer [siehe beigefügtes Bild].
  2. Öffnen Sie den .ssh-Ordner und vergewissern Sie sich, dass er keine Dateien wie id_rsa oder id_rsa.pub enthält, da sonst die Dateien manchmal nicht richtig umgeschrieben werden.
  3. git --version [Überprüfung der Git-Installation und -Version]
  4. git config --global user.email "Ihre E-Mail Adresse"
  5. git config --global user.name "Ihr Name"
  6. git config --list [stellen Sie sicher, dass Sie Ihren Namen und Ihre E-Mail-Adresse angegeben haben]
  7. cd ~/.ssh
  8. ssh-keygen, es fordert zum Speichern der Datei auf, erlauben Sie es
  9. cat ~/.ssh/id_rsa.pub [Zugriff auf Ihren öffentlichen Schlüssel und Kopieren des Schlüssels in die Gerrit-Einstellungen]

Hinweis : Sie sollten den Befehl sudo nicht mit Git verwenden. Wenn Sie einen sehr guten 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

enter image description here

enter image description here

0 Stimmen

Vielen Dank - Name in Git Repo auf Deploy-Schlüssel in Repo-Einstellung geändert

8voto

Andrew Punkte 8719

Sind Sie in einer Unternehmensumfeld ? Ist es möglich, dass sich Ihre Systemvariablen kürzlich geändert haben? Per こん SO Antwort, ssh-Schlüssel leben unter %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub . Wenn also %HOMEDRIVE% kürzlich geändert wurde, weiß Git nicht, wo es nach Ihrem Schlüssel suchen soll, und somit auch nicht, wo die Authentifizierung stattfindet.

Versuchen Sie zu laufen ssh -vT git@github.com . Notieren Sie, wo die identity file befindet sich. Für mich war das ein Hinweis auf pas zu meinem normalen \Users\MyLogin sondern auf ein Netzlaufwerk, weil eine Änderung der Umgebungsvariablen auf der Netzwerkebene vorgenommen wurde.

Die Lösung? Da meine neue %HOMEDRIVE% dieselben Berechtigungen wie meine lokalen Dateien hat, habe ich einfach meinen .ssh-Ordner dorthin verschoben und Feierabend gemacht.

0 Stimmen

Gestern hat mein ssh-Schlüssel funktioniert, aber heute wurden einige Einstellungen meines Systems geändert. Ich füge einfach shh Schlüssel wieder und es funktioniert jetzt.

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