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.

0voto

arjun kumar Punkte 400

Möglicherweise ist die Konfiguration von öffentlich/privat falsch. Bitte befolgen Sie die entsprechenden Schritte. Führen Sie den Befehl irgendwo im Fenster aus

ssh-keygen -o -f ~/.ssh/id_rsa

Gehen Sie nun zu c://users/xyz/.ssh/ und öffnen Sie den id_rsa-Schlüssel (der Pfad kann variieren) Gehen Sie nun zu Gitlab und Benutzerprofil>Einstellungen>Ssh-Schlüssel und fügen Sie Ihren Schlüssel hier hinzu. Versuchen Sie nun zu klonen

0voto

rook Punkte 5242

Lassen Sie mich auch meine Erfahrungen teilen,

Ich habe versucht, ein Projekt aus dem Gerrit Repo zu klonen, wo ich meine öffentlichen Schlüssel in den Kontoeinstellungen erhalten habe.

Beim ersten Versuch, eine git clone Ich habe den folgenden Fehler erhalten:

Unable to negotiate with XX.XX.XX.XX port XXX: no matching key exchange
method found. Their offer: diffie-hellman-group1-sha1

Ich habe herausgefunden, dass ich die Option SSH übergeben muss -oKexAlgorithms=+diffie-hellman-group1-sha1 irgendwie zu git clone .

Hoffentlich GIT_SSH_COMMAND Umgebungsvariable erledigte die Aufgabe:

export GIT_SSH_COMMAND="ssh -oKexAlgorithms=+diffie-hellman-group1-sha1"

Aber git clone hat immer noch nicht funktioniert. Jetzt wirft es die (zum Thema):

Permission denied (publickey).

Ich habe bereits SSH-Schlüssel und wollte sie nicht neu generieren. Ich habe die einfache SSH-Verbindung zum Host überprüft und sie war in Ordnung:

****    Welcome to Gerrit Code Review    ****

  Hi XXXXX, you have successfully connected over SSH.

  Unfortunately, interactive shells are disabled.
  To clone a hosted Git repository, use:

  git clone ssh://xxxxx@xx.xx.xx:xxx/REPOSITORY_NAME.git

Ich war ein wenig verwirrt. Ich begann erneut und schaltete die Fehlersuche für SSH über -vvv Option. Und ich sah das Folgende:

debug1: read_passphrase: can't open /dev/tty: No such device or address

Möglicherweise war es ein Overhead für die GIT_SSH_COMMAND env-Variable - mein Schlüssel war mit einer Passphrase gesichert (und ich habe sie eingegeben, als ich die Anmeldung beim Git Repo-Host überprüft habe).

Also habe ich beschlossen, die Phasphrase loszuwerden. Ein einfacher Befehl half mir dabei:

ssh-keygen -p

Dann habe ich meine Passphrase für die "alte Passphrase" eingegeben und einfach auf ENTER zweimal auf die "neue Passphrase", um sie leer zu lassen, d. h. ohne jegliche Passphrase, und um meine Wahl zu bestätigen.

Danach habe ich das frisch geklonte Repo auf meiner lokalen Festplatte.

0voto

Michel Keijzers Punkte 14450

Ich hatte auch genau den gleichen Fehler.

Das Problem war, dass beim Kopieren des öffentlichen Schlüssels in BitBucket (in meinem Fall) ein nicht sichtbarer Zeilenumbruch am Ende kopiert/eingefügt wurde.

Wenn Sie also den öffentlichen Schlüssel kopieren, kopieren Sie ihn zunächst in den Notizblock, entfernen die Leerzeile am Ende, kopieren ihn und fügen ihn ein.

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