Ich bin auf Mac Snow Leopard und habe gerade installiert git
.
Ich habe es versucht
git clone [email protected]: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-keygen
ohne Passphase, aber immer noch den gleichen Fehler zu machen.
git
ssh
ssh-keys
public-key
teepusink
quelle
quelle
sudo
- dies ist ein anderer Benutzer mit einem anderen öffentlichen Schlüssel.ssh-keygen
Dienstprogramm 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.Antworten:
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.)
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
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
quelle
ssh-add ~/.ssh/id_rsa
.xclip
Linux funktionierte nur mit den folgenden Schrittenxclip -sel clip < ~/.ssh/id_rsa.pub
: help.github.com/articles/generating-ssh-keysEine umfassendere Fehlerbehebung und sogar automatisierte Korrektur kann durchgeführt werden mit:
Quelle: https://help.github.com/articles/error-permission-denied-publickey/
quelle
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 ([email protected]:{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.
quelle
https://github.com
Git-URL heißt es immer nochSSL 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?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 .)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:
Befehl 2:
Fügen Sie dem SSH-Agenten Ihren SSH-Schlüssel hinzu:
quelle
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:
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:
Um dies zu beheben, setzen Sie die URL auf HTTP zurück:
Übrigens können Sie Ihre URL mit dem folgenden Befehl überprüfen:
Hoffe das wird jemandem wie mir helfen. : D.
quelle
Das funktioniert bei mir:
quelle
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.
quelle
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.
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
ssh-keygen -t rsa -b 4096 -C "[email protected]"
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.Enter passphrase (empty for no passphrase): [Type a passphrase]
Drücken Sie die Eingabetaste, wenn Sie dieEnter same passphrase again: [Type passphrase again]
Eingabetaste nicht erneut drücken möchtenDies wird erzeugen
id_rsa.pub
Schritt 3: Hinzufügen Ihres SSH-Schlüssels zum SSH-Agenten
eval "$(ssh-agent -s)"
$ ssh-add -K ~/.ssh/id_rsa
Kopieren Sie nun den SSH-Schlüssel und fügen Sie ihn Ihrem Github-Konto hinzu
pbcopy < ~/.ssh/id_rsa.pub
Geben 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.quelle
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
Ich habe das Problem behoben, indem ich die Datei / etc / ssh_config auf meinem Mac geändert habe. von
zu
quelle
config.ssh.forward_agent = true
, startete die VM neu und jetzt funktioniert es.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 ichssh://
am Ende der URL nichts geändert habe.Aber die Wahrheit ist:
Was bedeutet, dass ich es geändert habe
ssh://github.com/USERNAME/REPOSITORY.git
,[email protected]:USERNAME/REPOSITORY.git
funktioniert.Dummer Fehler, aber Hoffnung hilft jemandem!
quelle
ssh://github.com/USERNAME/REPOSITORY.git
,[email protected]:USERNAME/REPOSITORY.git
es funktioniert.ssh
anstelle vonhttps
"https: //" in "ssh: //" geändert habe, dann habe ich den Fehler erhalten. Also ändere 'ssh: // git /../ `in' git @ .. /" :) Meine Antwort wurde bearbeitet.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.
quelle
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 [email protected]
. Beachten Sie, wo sich dasidentity file
befindet. 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.quelle
Leute, so hat es bei mir funktioniert:
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
quelle
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 ...
quelle
Einer der einfachsten Wege
Gehe zum Terminal-
quelle
Zusätzlich zu Rufinus 'Antwort lautet die Verknüpfung zum Kopieren Ihrer SSH-Taste in die Zwischenablage in Windows :
type id_rsa.pub | clip
Refs:
quelle
Wenn Sie mehr als einen Schlüssel haben, müssen Sie dies möglicherweise tun
ssh-add private-keyfile
quelle
Ich bin auf diesen Fehler gestoßen, weil ich meinem aktuellen Arbeitsverzeichnis Berechtigungen 700 erteilen musste:
quelle
Ich musste meine SSH-Schlüssel in den Stammordner kopieren. Google Cloud Compute Engine mit Ubuntu 18.04
quelle
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 [email protected] 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.
quelle
Es ist ziemlich einfach. Geben Sie den folgenden Befehl ein
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.
quelle
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.
quelle
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.
quelle
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.
quelle
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:
quelle
Es hat bei mir funktioniert
quelle
Die einfachste Lösung hierfür, wenn Sie versuchen, in ein Repository mit einem anderen Benutzernamen zu pushen, ist:
quelle
Dieser seltsame Fehler war in meinem Fall ein Symptom für die
gnome-keyring-daemon
falsche 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
quelle
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
quelle
In meinem MAC habe ich das gelöst mit:
Aus irgendeinem Grund hielt mein Git an, um den privaten Schlüssel in der
github_rsa
Datei 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 [email protected]
quelle