Wie löse ich den Fehler "Berechtigung verweigert" (publickey) bei Verwendung von Git?


631

Ich bin auf Mac Snow Leopard und habe gerade installiert git.

Ich habe es versucht

git clone git@thechaw.com:cakebook.git

aber das gibt mir diesen Fehler:

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

Was vermisse ich?
Ich habe auch versucht, ssh-keygenohne Passphase, aber immer noch den gleichen Fehler zu machen.


8
Haben Sie versucht, den öffentlichen Schlüssel hochzuladen, den Sie über ssh-keygen generiert haben?
Patrick Cornelissen

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

gleicher Fehler. Ich habe zuvor über github einen öffentlichen Schlüssel erstellt und dann mit dem ssh-keygenDienstprogramm ein weiteres Schlüsselpaar generiert . Durch Löschen des alten öffentlichen Schlüssels in den persönlichen Einstellungen von github und Hinzufügen meines von ssh generierten Schlüssels id_rsa.pub zu SSH- und GPG-Schlüsseln wurden die Probleme mit den Klonberechtigungen behoben.
Tanner Dolby

Antworten:


773

Wenn der Benutzer noch kein zuvor festgelegtes öffentliches / privates SSH-Schlüsselpaar generiert hat

Diese Informationen funktionieren in theChaw, können jedoch auf alle anderen Git-Repositorys angewendet werden, die SSH-Pubkey-Authentifizierungen unterstützen. (Siehe zum Beispiel Gitolite , Gitlab oder Github.)

Beginnen Sie zunächst mit der Einrichtung Ihres eigenen öffentlichen / privaten Schlüsselpaarsatzes. Dies kann entweder DSA oder RSA verwenden, sodass grundsätzlich jeder von Ihnen eingerichtete Schlüssel funktioniert. Auf den meisten Systemen können Sie ssh-keygen verwenden.

  • Zuerst möchten Sie eine CD in Ihr .ssh-Verzeichnis erstellen. Öffnen Sie das Terminal und führen Sie Folgendes aus:

    cd ~/.ssh && ssh-keygen

  • Als nächstes müssen Sie dies in Ihre Zwischenablage kopieren.
    • Unter OS X ausführen: cat id_rsa.pub | pbcopy
    • Unter Linux ausführen: cat id_rsa.pub | xclip
    • Unter Windows (über Cygwin / Git Bash) ausführen: cat id_rsa.pub | clip
  • Fügen Sie Ihren Schlüssel über die Website zu Ihrem Konto hinzu.
  • Richten Sie zum Schluss Ihre .gitconfig ein.
    • git config --global user.name "bob"
    • git config --global user.email bob@... (Vergessen Sie nicht, Ihre Befehlszeile neu zu starten, um sicherzustellen, dass die Konfiguration neu geladen wird.)

Das war's, du solltest gut klonen und auschecken können.

Weitere Informationen finden Sie unter https://help.github.com/articles/generating-ssh-keys (danke an @Lee Whitney) -

Wenn der Benutzer zuvor ein öffentliches / privates SSH-Schlüsselpaar generiert hat

  • Überprüfen Sie, welcher Schlüssel in Ihren Github- oder Gitlab-Kontoeinstellungen autorisiert wurde
  • Bestimmen Sie, welcher entsprechende private Schlüssel von Ihrem lokalen Computer zugeordnet werden muss

eval $(ssh-agent -s)

  • Definieren Sie, wo sich die Schlüssel befinden

ssh-add ~/.ssh/id_rsa


6
OK. Dies ist eigentlich kein Git, sondern ein SSH-Synchronisationsproblem. Ich habe das gleiche mit Assembla und Ihr Link hat mir geholfen, es zu lösen. Vielen Dank !
Alexandre Bourlier

Diese Antwort ist hilfreich, aber dies scheint vollständiger und genauso einfach zu sein, wenn Sie Schlüssel von Grund auf neu generieren
whitneyland

6
Ich hatte ein Problem mit dem Keygen. Es reagiert empfindlich auf die E-Mail-Adresse in einer globalen env-Variablen. Wenn Sie dieses Problem haben, sollten Sie im ersten Schritt die E-Mail-Adresse für Ihr Github-Konto angeben: ssh-keygen -t rsa -C "your_email@youremail.com"
melchoir55

30
Wenn das immer noch nicht funktioniert, müssen Sie ssh-add ~/.ssh/id_rsa.
Michael Litvin

1
Das Kopieren unter xclipLinux funktionierte nur mit den folgenden Schrittenxclip -sel clip < ~/.ssh/id_rsa.pub : help.github.com/articles/generating-ssh-keys
Pat Migliaccio

217

Eine umfassendere Fehlerbehebung und sogar automatisierte Korrektur kann durchgeführt werden mit:

ssh -vT git@github.com

Quelle: https://help.github.com/articles/error-permission-denied-publickey/


1
Mein Problem hatte damit zu tun, dass ich einen anderen Schlüssel für meinen Server hatte. Nachdem ich den obigen Befehl verwendet hatte, um das Problem zu ermitteln, habe ich die IdentifyFile in meiner Konfigurationsdatei behoben und es hat funktioniert.
Jarie Bolander

1
Es wurde angezeigt, mit welchem ​​Schlüssel Github sich authentifizieren wollte. v hilfreich
cdosborn

8
Dies behebt nichts. Ich erhalte immer noch den Fehler in der Frage von OP.
IgorGanapolsky

5
Der Befehl soll Ihnen bei der Behebung des Problems helfen. Er ist kein magischer Fix-this-for-me-Schalter.
Stevek

2
Ich kann nicht sagen, dass dies irgendetwas gelöst hat, aber es ist ein verdammt interessanter Befehl und funktioniert auch mit GitHub Enterprise.
Hack-R

164

Dieser Fehler kann auftreten, wenn Sie auf die SSH-URL (Lesen / Schreiben) anstelle der schreibgeschützten Git-URL zugreifen, aber keinen Schreibzugriff auf dieses Repo haben.

Manchmal möchten Sie nur Ihr eigenes Repo klonen, z. B. auf einem Server bereitstellen. In diesem Fall benötigen Sie eigentlich nur READ-ONLY-Zugriff. Da dies jedoch Ihr eigenes Repo ist, zeigt GitHub möglicherweise die SSH-URL an, wenn Sie dies bevorzugen. In dieser Situation wird Ihr Zugriff verweigert, wenn sich der öffentliche Schlüssel Ihres Remote-Hosts nicht in Ihren GitHub-SSH-Schlüsseln befindet. Dies wird erwartet .

Ein gleichwertiger Fall ist, wenn Sie versuchen, das Repo eines anderen zu klonen, auf das Sie mit der SSH-URL keinen Schreibzugriff haben.

Kurz gesagt , wenn Sie nur ein Repo klonen möchten, verwenden Sie die HTTPS-URL ( https://github.com/{user_name}/{project_name}.git) anstelle der SSH-URL ( git@github.com:{user_name}/{project_name}.git), um die (unnötige) Überprüfung des öffentlichen Schlüssels zu vermeiden.


Update: GitHub zeigt jetzt HTTPS als Standardprotokoll an, und dieser Schritt kann wahrscheinlich den möglichen Missbrauch von SSH-URLs reduzieren.


Mit der https://github.comGit-URL heißt es immer noch SSL certificate problem: self signed certificate in certificate chain. git -c http.sslVerify=false clone ...scheint ein gefährlicher Schachzug zu sein. Chrome gibt jedoch keine SSL-Warnungen aus. Gedanken?
Jason Kleban

1
@ uosɐſ Entschuldigung, aber ich bin nie auf dieses Problem gestoßen. Vielleicht ist das erste, was Sie tun müssen, denselben Befehl von einem anderen Computer aus zu versuchen und zu prüfen, ob das Problem weiterhin besteht.
Kavinyao

1
Das hat es auch für mich getan. Vielen Dank. Um mein Git-Repo auf mein Shared-Hosting-Konto (1 und 1) zu klonen, musste ich git clone https://github.com/MyUserName/MyRepo.git einfach auf die Textlinks unter der Repo-URL rechts auf der Github-Seite klicken, auf der steht: " Sie können mit HTTPS, SSH oder Subversion klonen. " . ". (Klicken Sie auf HTTPS , um den Link anstelle der Standard- SSH zu erhalten .)
Oliver Schafeld

VIELEN DANK!!!!!!
Sharl Sherif

Hervorragende Antwort. Schließlich erklärt jemand, warum es so funktioniert.
Qback

104

Der Github Hilfe Link hat mir geholfen , dieses Problem zu lösen. Es sieht so aus, als ob der SSH-Schlüssel nicht zum SSH-Agenten hinzugefügt wurde. Das habe ich letztendlich getan.

Befehl 1:

Stellen Sie sicher, dass ssh-agent aktiviert ist. Der Befehl startet den ssh-agent im Hintergrund:

eval "$(ssh-agent -s)"

Befehl 2:

Fügen Sie dem SSH-Agenten Ihren SSH-Schlüssel hinzu:

ssh-add ~/.ssh/id_rsa

7
Nach dem Upgrade auf OSx El Capitan auf Sierra hat das bei mir funktioniert.
Louwki

7
Arbeite für mich nach dem Upgrade auf macOS Sierra =)
Adriano Resende

Dies funktionierte für mich auf Raspberry Pi, wo ssh-add anscheinend ein "-k" -Flag anstelle von "-K" hat. Nachdem ich meinen Bereitstellungsschlüssel hinzugefügt hatte, konnte ich mein Repo erfolgreich über den SSH-Link klonen.
Josh

34

Habe den gleichen Fehlerbericht.

Behoben, stattdessen HTTP zu verwenden. Da möchte ich keine "SSH-Schlüssel" für einen Test-PC einstellen.

Ändern Sie die URL beim Klonen in HTTP:

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

Mein Problem ist ein bisschen anders : Ich habe eine URL festgelegt, wenn ich ein vorhandenes lokales Repo zu Remote hinzufüge, indem ich Folgendes verwende:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

Um dies zu beheben, setzen Sie die URL auf HTTP zurück:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Übrigens können Sie Ihre URL mit dem folgenden Befehl überprüfen:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

Hoffe das wird jemandem wie mir helfen. : D.



21

Beachten Sie, dass Sie (zumindest für einige Projekte) ein Github-Konto mit einem SSH-Schlüssel haben müssen .

Sehen Sie sich die in Ihrem Authentifizierungsagenten aufgeführten Schlüssel an ( ssh-add -l )
(wenn Sie keine sehen, fügen Sie einen Ihrer vorhandenen Schlüssel mit ssh-add / path / to / your / key hinzu (z. B. ssh-add ~ /.ssh/id_rsa ))
(Wenn Sie keine Schlüssel haben, erstellen Sie zuerst einen. Siehe: http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html oder einfach google ssh-keygen)

So überprüfen Sie, ob Ihrem Github-Konto ein Schlüssel zugeordnet 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 gesehen haben, als Sie vor einer Minute ssh-add -l eingegeben haben.

Wenn Sie dies nicht tun, fügen Sie eine hinzu und versuchen Sie es erneut.


Das hat bei mir funktioniert. Es ist mir passiert, weil mein Schlüssel nicht zum Authentifizierungsagenten hinzugefügt wurde. Vielen Dank.
antonD

19

Ich hatte mit dem gleichen Problem zu kämpfen, das ich getan habe, und ich konnte das Repo klonen. Ich habe dieses Verfahren für iMac befolgt .

Erster Schritt: Überprüfen Sie, ob der öffentliche SSH-Schlüssel bereits vorhanden ist.

  1. Terminal öffnen.
  2. Geben Sie ein ls -al ~/.ssh, um festzustellen , ob vorhandene SSH-Schlüssel vorhanden sind:

Überprüfen Sie die Verzeichnisliste, um festzustellen, ob Sie bereits einen öffentlichen SSH-Schlüssel haben. Standardmäßig ist public einer der folgenden d_dsa.pub, id_ecdsa.pub, id_ed25519.pub, id_rsa.pub

Wenn Sie nicht finden, fahren Sie mit Schritt 2 fort, andernfalls folgen Sie Schritt 3

Schritt 2: Generieren eines öffentlichen SSH-Schlüssels

  1. Terminal öffnen.
  2. Geben Sie den Befehl followong mit Ihrer gültigen E-Mail-Adresse ein, die Sie für github verwenden ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  3. Im Terminal sehen Sie Folgendes Generating public/private rsa key pair. Wenn Sie dazu aufgefordert werden, "Enter a file in which to save the key,"die Eingabetaste zu drücken. Dies akzeptiert den Standardspeicherort der Datei. Wenn Sie dazu aufgefordert werden, Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]drücken Sie erneut die Eingabetaste. Geben Sie an der Eingabeaufforderung eine sichere Passphrase ein.
  4. Enter passphrase (empty for no passphrase): [Type a passphrase]Drücken Sie die Eingabetaste, wenn Sie die Enter same passphrase again: [Type passphrase again]Eingabetaste nicht erneut drücken möchten

Dies wird erzeugen id_rsa.pub

Schritt 3: Hinzufügen Ihres SSH-Schlüssels zum SSH-Agenten

  1. Zwischentyp eval "$(ssh-agent -s)"
  2. Fügen Sie dem SSH-Agenten Ihren SSH-Schlüssel hinzu. Wenn Sie einen vorhandenen SSH-Schlüssel verwenden, anstatt einen neuen SSH-Schlüssel zu generieren, müssen Sie id_rsa im Befehl durch den Namen Ihrer vorhandenen privaten Schlüsseldatei ersetzen. Geben Sie diesen Befehl ein$ ssh-add -K ~/.ssh/id_rsa

Kopieren Sie nun den SSH-Schlüssel und fügen Sie ihn Ihrem Github-Konto hinzu

  1. pbcopy < ~/.ssh/id_rsa.pubGeben Sie im Terminal diesen Befehl mit Ihrem SSH-Dateinamen ein. Dadurch wird die Datei in Ihre Zwischenablage kopiert. Öffnen Sie nun Ihr Github-Konto. Gehen Sie zu Einstellungen> SSH- und GPG-Schlüssel> Neuer SSH-Schlüssel. Geben Sie den Titel ein, fügen Sie den Schlüssel aus der Zwischenablage ein und speichern Sie ihn. Voila, du bist fertig.

2
Windows-Benutzerkopie über: cat ~ / .ssh / id_rsa.pub | Clip
Fabii

1
Nachdem Sie hier und da eine Stunde lang hier und da gelesen haben, funktioniert die Lösung Schritt für Schritt. Denken Sie daran, Ihr Github-Passwort als Passphrase in den Schritten hinzuzufügen, andernfalls muss es jedes Mal manuell hinzugefügt werden
Afshin Ghazi

13

Ich hatte eine etwas andere Situation, ich war bei einem Remote-Server angemeldet und verwendete git auf dem Server. Als ich einen git-Befehl ausführte, erhielt ich dieselbe Nachricht

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

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

ForwardAgent no 

zu

ForwardAgent yes

Der Fehler trat auf, als versucht wurde, Edelsteine ​​von einer VirtualBox-VM aus Github abzurufen. Aktualisierte meine Vagrant-Datei für die Verwendung config.ssh.forward_agent = true, startete die VM neu und jetzt funktioniert es.
Chris Bloom


13

Ich bin auf dasselbe Problem gestoßen, weil ich dachte, der Unterschied zwischen SSH und HTTPS sei

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

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

Also habe ich von HTTPS zu SSH gewechselt https://, indem ich ssh://am Ende der URL nichts geändert habe.

Aber die Wahrheit ist:

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

git@github.com:USERNAME/REPOSITORY.git

Was bedeutet, dass ich es geändert habe ssh://github.com/USERNAME/REPOSITORY.git, git@github.com:USERNAME/REPOSITORY.gitfunktioniert.

Dummer Fehler, aber Hoffnung hilft jemandem!


Ja, ich habe es geändert ssh://github.com/USERNAME/REPOSITORY.git, git@github.com:USERNAME/REPOSITORY.gites funktioniert.
William Hu

Sicher. Ich sage nur, ich sehe keinen
Grund

Ich sehe, weil ich nur sshanstelle von https"https: //" in "ssh: //" geändert habe, dann habe ich den Fehler erhalten. Also ändere 'ssh: // git /../ `in' git @ .. /" :) Meine Antwort wurde bearbeitet.
William Hu

Für mich geht das. Vielen Dank! Ich habe https und dann ssh ausprobiert, aber es verweigert mir immer noch den Zugriff, bis ich es mit "git clone git@github.com: /myusername/myproject.git" mache.
Thach Van

6

Stellen Sie unter Windows sicher, dass alle Ihre Apps mit HOME übereinstimmen. Msys wird es überraschenderweise NICHT für Sie tun. Ich musste eine Umgebungsvariable festlegen, da sich ssh und git anscheinend nicht darauf einigen konnten, wo sich mein .ssh-Verzeichnis befand.


6

Befinden Sie sich in einem Unternehmensumfeld ? Ist es möglich, dass sich Ihre Systemvariablen kürzlich geändert haben? Gemäß dieser SO-Antwort leben SSH-Schlüssel bei %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub. Wenn %HOMEDRIVE%Git kürzlich geändert wurde, weiß es nicht, wo es nach Ihrem Schlüssel und damit nach dem gesamten Authentifizierungsmaterial suchen soll.

Versuche zu rennen ssh -vT git@github.com. Beachten Sie, wo sich das identity filebefindet. Für mich deutete dies nicht auf mein normales \Users\MyLogin, sondern auf ein Netzwerklaufwerk hin, da die auf Netzwerkebene übertragenen Umgebungsvariablen geändert wurden.

Die Lösung? Da mein neues %HOMEDRIVE%die gleichen Berechtigungen wie meine lokalen Dateien hat, habe ich einfach meinen .ssh-Ordner dorthin verschoben und ihn einen Tag lang aufgerufen.


diese Arbeit für mich. gestern hat mein ssh key funktioniert aber heute werden einige einstellungen meines systemes geändert. Ich füge einfach wieder shh key hinzu und es funktioniert jetzt.
Hitesh Agarwal

6

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 stellen Sie sicher, dass keine Datei wie id_rsa oder id_rsa.pub vorhanden ist. Andernfalls werden Dateien manchmal nicht ordnungsgemäß neu geschrieben
  3. git --version [Überprüfen Sie die Installation und Version von git]
  4. git config --global user.email "Ihre E-Mail-ID"
  5. git config --global user.name "dein Name"
  6. git config --list [Stellen Sie sicher, dass Sie Ihren Namen und Ihre E-Mail-Adresse festgelegt haben]
  7. cd ~ / .ssh
  8. ssh-keygen, es fordert zum Speichern der Datei auf, erlauben Sie es
  9. cat ~ / .ssh / id_rsa.pub [Greifen Sie auf Ihren öffentlichen Schlüssel zu und kopieren Sie den Schlüssel in die Gerrit-Einstellungen]

Hinweis : Sie sollten den Befehl sudo nicht mit Git verwenden. Wenn Sie einen sehr guten Grund haben, sudo zu verwenden, stellen Sie sicher, dass Sie es mit jedem Befehl verwenden (es ist wahrscheinlich besser, su zu verwenden, um an diesem Punkt eine Shell als root zu erhalten). Wenn Sie SSH-Schlüssel ohne sudo generieren und dann versuchen, einen Befehl wie sudo git push zu verwenden, werden Sie nicht dieselben Schlüssel verwenden, die Sie generiert haben

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein


5

Die grundlegenden GIT-Anweisungen enthielten keinen Verweis auf die SSH-Schlüsselelemente. Nach einigen der obigen Links habe ich eine Git-Hilfeseite gefunden, auf der Schritt für Schritt erklärt wird, wie dies für verschiedene Betriebssysteme genau zu tun ist (der Link erkennt Ihr Betriebssystem und leitet entsprechend um):

http://help.github.com/set-up-git-redirect/

Es geht durch alles, was für GITHub benötigt wird, und enthält detaillierte Erklärungen wie "Warum beim Erstellen eines RSA-Schlüssels eine Passphrase hinzufügen?". Ich dachte, ich würde es posten, falls es jemand anderem hilft ...


5

Einer der einfachsten Wege

Gehe zum Terminal-

  git push <Git Remote path> --all


3

Wenn Sie mehr als einen Schlüssel haben, müssen Sie dies möglicherweise tun ssh-add private-keyfile


Vielen Dank! Dies war in der Tat mein Problem.
GoGreen

[root @ li566-238 hanjiyun] # ssh-add private-keyfile private-keyfile: Keine solche Datei oder Verzeichnis
JY Han

3

Ich bin auf diesen Fehler gestoßen, weil ich meinem aktuellen Arbeitsverzeichnis Berechtigungen 700 erteilen musste:

chmod -R 700 /home/ec2-user/

3

Ich musste meine SSH-Schlüssel in den Stammordner kopieren. Google Cloud Compute Engine mit Ubuntu 18.04

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

2

Ich habe dieses Problem gerade beim Einstellen meines aktuellen Projekts festgestellt, und keine der oben genannten Lösungen funktioniert. Also habe ich versucht, mit dem Befehl ssh -vT git@github.com zu prüfen, was wirklich auf der Debug-Liste passiert. Ich stelle fest, dass mein privater Schlüsseldateiname nicht in der Liste enthalten ist. Umbenennen Sie den Dateinamen des privaten Schlüssels in 'id_rsa'. hoffe das könnte helfen.


Nicht hilfreich Fälle , wenn Sie mit dem „id_rsa“ -Taste für etwas anderes ....
random_user_name

2

Es ist ziemlich einfach. Geben Sie den folgenden Befehl ein

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

Generieren Sie den SSH-Schlüssel. Öffnen Sie die Datei und kopieren Sie den Inhalt. Gehen Sie zur GitHub-Einstellungsseite und klicken Sie auf SSH-Taste. Klicken Sie auf Neuen SSH-Schlüssel hinzufügen und fügen Sie den Inhalt hier ein. Das war's :) Sie sollten das Problem nicht noch einmal sehen.


1

Beim Versuch, ein Makefile auszuführen , wurde ein ähnlicher Fehler "Berechtigung verweigert" (publickey) angezeigt .

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

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

Nachdem Sie die Einrichtung mit Ihrem Git Hub-Konto 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 Ihrem Konto hinzugefügt

und mein Fehler wurde behoben.


1

Ich habe den gleichen Fehler bekommen. Mein Problem war das Einmischen von Sudo.

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

Um dies zu beheben, habe ich über chmod Berechtigungen für das übergeordnete Verzeichnis festgelegt, in dem ich meinen Klon enthalten wollte, damit ich darauf schreiben kann. Dann habe ich git clone OHNE sudo-Präfix ausgeführt. Es hat dann funktioniert! Danach habe ich die Berechtigungen wieder geändert. Erledigt.


1

Ich habe diesen Fehler 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 bestand darin, die Schlüssel unter Verwendung der Haupt-E-Mail-Adresse meines Github-Kontos neu zu generieren.


1

Es hat bei mir funktioniert.

Ihr öffentlicher Schlüssel wird in der Datei id_rsa.pub; gespeichert und ist der Schlüssel, den Sie in Ihr Konto hochladen. Sie können diesen Schlüssel in der Zwischenablage speichern, indem Sie Folgendes ausführen:

pbcopy <~ / .ssh / id_rsa.pub

  • Kopieren Sie den SSH-Schlüssel in die Zwischenablage und kehren Sie zum Webportal zurück.
  • Fügen Sie im Feld SSH-Schlüssel Ihren SSH-Schlüssel ein.
  • Geben Sie im Feld Name einen Namen für den Schlüssel ein.
  • speichern .

1

Es hat bei mir funktioniert

ssh -i [your id_rsa path] -T github@github.com

Sie möchten lieber erklären, warum Ihre Antwort sein Problem lösen würde, danke.
Muhammed Refaat

1

Die einfachste Lösung hierfür, wenn Sie versuchen, in ein Repository mit einem anderen Benutzernamen zu pushen, ist:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

1

Dieser seltsame Fehler war in meinem Fall ein Symptom für die gnome-keyring-daemonfalsche Benennung des Schlüssels, für den ein Kennwort erforderlich war.

Ich folge den hier beschriebenen Schritten und gebe das Passwort über das Terminal ein. Der Fehler, auch bekannt als die verwirrende GUI-Oberfläche, wurde behoben. Siehe: /ubuntu/3045/how-to-disable-gnome-keyring


1

In meinem Fall habe ich Ubuntu neu installiert und der Benutzername wurde gegenüber dem vorherigen geändert. In diesem Fall unterscheidet sich auch der generierte SSH-Schlüssel vom vorherigen.

Das Problem wurde gelöst, indem einfach der aktuelle öffentliche ssh-Schlüssel in das Repository kopiert wurde. Der Schlüssel ist bei Ihrem Benutzer verfügbar/home/.ssh/id_rsa.pub


1

In meinem MAC habe ich das gelöst mit:

cp ~/.ssh/github_rsa ~/.ssh/id_rsa

Aus irgendeinem Grund hielt mein Git an, um den privaten Schlüssel in der github_rsaDatei zu finden. Dies geschah in einem bestimmten Repo. Ich meine, dass git in anderen Repositories normal weitergearbeitet hat.

Ich denke, es ist ein Fehler.

Ich konnte feststellen, dass dieses Verhalten ausgeführt wurde ssh -vT git@github.com

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.