Ich greife zum ersten Mal auf GitHub zu und habe keine Erfahrung mit einer Konsole. Ich bin auf einem MacBook mit Bash. Wenn ich versuche, auf GitHub zuzugreifen, erhalte ich Folgendes:
git clone git@github.com:dhulihan/league-of-legends-data-scraper.git
Cloning into 'league-of-legends-data-scraper'...
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Ich habe versucht, den Anweisungen auf der Github-Seite zu folgen, dass die Erlaubnis verweigert wird.
Wenn ich benutze ssh -vT [email protected]
, bekomme ich folgendes:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to github.com [192.30.252.129] port 22.
debug1: Connection established.
debug1: identity file /Users/XXXX/.ssh/id_rsa type -1
debug1: identity file /Users/XXXX/.ssh/id_rsa-cert type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa type -1
debug1: identity file /Users/XXXX/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version libssh-0.6.0
debug1: no match: libssh-0.6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-sha1 none
debug1: kex: client->server aes128-ctr hmac-sha1 none
debug1: sending SSH2_MSG_KEXDH_INIT
debug1: expecting SSH2_MSG_KEXDH_REPLY
debug1: Server host key: RSA 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /Users/XXXX/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/XXXX/.ssh/id_rsa
debug1: Trying private key: /Users/XXXX/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).
Als nächstes wird eval "$(ssh-agent -s)"
"Agent pid 2314" zurückgegeben, jedoch ssh-add -l
"Der Agent hat keine Identitäten".
Und dort stecke ich fest.
bash
github
ssh
permission-denied
public-key
Dunkel
quelle
quelle
Antworten:
Alle Details in dieser Antwort .
Zusammenfassend , wenn
ssh-add -l
returns „Der Agent keine Identität hat“, bedeutet dies , dass die verwendeten Schlüssel durchssh
(in Dateien gespeichert, wie~/.ssh/id_rsa
,~/.ssh/id_dsa
etc.) sind entweder fehlen, sind sie nicht bekannt sindssh-agent
, die das Authentifizierungsagent ist, oder dass ihre Berechtigungen sind falsch eingestellt (zum Beispiel weltbeschreibbar).Wenn Ihre Schlüssel fehlen oder wenn Sie keine generiert haben, verwenden Sie
ssh-keygen -t rsa
,ssh-add
um sie hinzuzufügen.Wenn Schlüssel vorhanden sind, aber nicht bekannt sind
ssh-agent
(z. B. wenn sie sich in einem nicht standardmäßigen Ordner befinden), verwendenssh-add /path/to/my-non-standard-ssh-folder/id_rsa
Sie diese, um sie hinzuzufügen.Sehen Sie diese Antwort, wenn Sie Probleme mit
ssh-add
oder habenssh-agent
.quelle
ssh-add /path/to/keyX
für jeden verwenden, insbesondere wenn sie nicht standardmäßige Namen haben. Details hier: stackoverflow.com/questions/3225862/… (eine nette Antwort)ssh-add
wieder nach den Berechtigungen ein Teil des Problems lösen. Danach hatssh -vT [email protected]
es nicht funktioniert. Ich musste den absoluten Pfad wie den oben erwähnten Kommentator hinzufügen . Dann war alles Soße.Versuche dies:
arbeitete für mich
quelle
chmod 600 ~/.ssh/id_rsa
ssh-add ~/.ssh/id_rsa
DIE ANTWORT 2019 für macOS Sierra & High Sierra & Catalina:
PS: Bei den meisten anderen Antworten müssen Sie einen neuen SSH-Schlüssel erstellen ... aber das müssen Sie nicht tun :)
Wie unter https://openradar.appspot.com/27348363 ausführlich beschrieben , hat macOS / OS X bis Yosemite SSH-Schlüssel gespeichert, die per Befehl hinzugefügt wurden
ssh-add -K <key>
Hier sind die 4 Schritte, die ich ausführen musste, damit es funktioniert:
1:
ssh-add ~/.ssh/PATH_TO_YOUR_SSH_PRIVATE_KEY (e.g. ~/.ssh/id_rsa)
2: Fügen Sie Folgendes hinzu
~/.ssh/config
3: Stellen Sie sicher, dass Sie alle gitconfig-Einträge entfernen, die den osxkeychain-Helfer verwenden:
4: Starten Sie Ihr Terminal neu, damit es wirksam wird.
quelle
Ich habe eine Weile an dem gleichen Problem festgehalten, das ich schließlich gelöst habe.
Mein Problem : Ich konnte keinen Push ausführen. Ich konnte meine Fernbedienung überprüfen und sehen (mit
git remote -v
), aber als ich sie ausführtegit push origin master
, kehrte sie zurück:Permission denied (publickey). fatal: Could not read from remote repository.
und so.Wie ich es gelöst habe:
ssh-keygen -t rsa
. Die Eingabe eines Namens für die Schlüsseldatei (wenn Sie dazu aufgefordert wurden) war nutzlos.ssh-add /Users/federico/.ssh/id_rsa
, der erfolgreich zurückgegeben wurdeIdentity added: /Users/myname/.ssh/id_rsa (/Users/myname/.ssh/id_rsa)
ssh-add -l
funktionierte / schien nur der Befehl nützlich (nachdem ich die vorherigen Schritte ausgeführt hatte), und gab meinen Schlüssel erfolgreich zurück. Der letzte Schritt zeigt Ihnen, wo Sie Ihren öffentlichen Schlüssel auf Ihrer GitHub-Seite überprüfen können. Mit diesem Befehl können Sie alle Ihre Schlüssel überprüfen :ls -al ~/.ssh
.Dann funktionierte der Push-Befehl schließlich!
Ich hoffe das wird helfen! Viel Glück an alle.
quelle
Führen Sie die folgenden Befehle aus:
Gehen Sie zu Ihrem Github-Konto: https://github.com/settings/profile
1) Klicken Sie auf: SSH- und GPG-Schlüssel
2) Neuer SSH-Schlüssel und dort einfügen
3) Fügen Sie den SSH-Schlüssel hinzu
Getan!
quelle
Zunächst müssen Sie in Ihrem SSH-Verzeichnis
für diesen Typ den folgenden Befehl in Ihrem Terminal auf dem Mac oder was auch immer Sie im Fenster verwenden
Jetzt ist es in der SSH.
Hier finden Sie alle SSH-Schlüssel / -Dateien, die sich auf alle Projekte beziehen. Geben Sie nun den folgenden Befehl ein, um anzuzeigen, ob ein SSH-Schlüssel verfügbar ist
Dies zeigt Ihnen alle verfügbaren SSH. In meinem Fall waren es
jetzt zwei . Sie müssen einen Agenten starten, um ein SSH hinzuzufügen. Für diesen Typ folgender Befehl
Zu guter Letzt fügen Sie diesem Agententyp nach dem folgenden Befehl ein ssh hinzu
ersetzen
quelle
Dies kann dazu führen, dass für jedes neue Terminal die Agenten-ID unterschiedlich ist. Sie müssen den privaten Schlüssel für den Agenten hinzufügen
quelle
Ein weiteres Element, das mir klar wurde, ist, dass normalerweise der Ordner .ssh in Ihrem Stammordner unter Mac OS X / Users / erstellt wird. Wenn Sie versuchen, ssh -vT [email protected] aus einem anderen Ordner zu verwenden, wird eine Fehlermeldung angezeigt, selbst wenn Sie den richtigen Schlüssel hinzugefügt haben.
Sie müssen den Schlüssel erneut aus dem aktuellen Ordner hinzufügen (ssh-add 'korrekter Pfad zu id_rsa'), um sich erfolgreich zu authentifizieren (vorausgesetzt, Sie haben den Schlüssel bereits in Ihr Profil in Git hochgeladen).
quelle
Das hat bei mir funktioniert:
chmod 700 .ssh chmod 600 .ssh/id_rsa chmod 644 .ssh/id_rsa.pub
Geben Sie dann Folgendes ein:
ssh-add ~/.ssh/id_rsa
quelle
~/.ssh
Berechtigungen geht. Sie können Ihre Antwort jedoch erheblich verbessern, indem Sie den vollständigen Befehl (hierchmod
) hinzufügen und erklären, was dies bewirkt und warum es benötigt wird.Nachdem ich lange gekämpft hatte, konnte ich dieses Problem endlich unter Windows beheben. Für mich war die User-env-Variable GIT_SSH so eingestellt, dass sie auf zeigt
welches zusammen mit WinScp installiert wurde. Ich habe das Zeigen geändert, um die Standard- Datei ssh.exe zu verwenden, die mit git-scm "C: \ Programme \ Git \ usr \ bin \ ssh.exe" geliefert wird.
quelle
Schritte für BitBucket:
Wenn Sie keinen neuen Schlüssel generieren möchten, überspringen Sie ssh-keygen
Kopieren Sie den öffentlichen Schlüssel in die Zwischenablage:
Bei Bit Bucket anmelden: Gehen Sie zu Profil anzeigen -> Einstellungen -> SSH-Schlüssel (auf der Registerkarte Sicherheit). Klicken Sie auf Schlüssel hinzufügen, fügen Sie den Schlüssel in das Feld ein und fügen Sie einen beschreibenden Titel hinzu
Zurück zu Git Bash:
Du solltest bekommen :
Jetzt:
git pull
sollte funktionierenquelle
Ich hatte dieses Problem, nachdem ich eine Festplatte aus einem Backup wiederhergestellt hatte.
Mein Problem: Ich konnte meine Fernbedienung überprüfen und sehen (mit git remote -v), aber als ich git push origin master ausführte, gab es Folgendes zurück: Berechtigung verweigert (publickey). fatal: Konnte nicht aus dem Remote-Repository lesen.
Ich hatte bereits einen SSH-Ordner und SSH-Schlüssel und fügte sie über das Terminal hinzu (
ssh-add /path/to/my-ssh-folder/id_rsa
) wurde meine Identität erfolgreich hinzugefügt, aber ich konnte immer noch nicht pushen und bekam immer noch den gleichen Fehler. Das Generieren eines neuen Schlüssels war für mich eine schlechte Idee, da es an andere sehr sichere Berechtigungen für AWS gebunden war.Es stellte sich heraus, dass die Verbindung zwischen dem Schlüssel und meinem Github-Profil unterbrochen war.
Lösung: erneutes Hinzufügen des Schlüssels zu Github unter Profil> Einstellungen> SSH- und GPG-Schlüssel wurde das Problem behoben.
Außerdem: In meinem Konto wurde eine 2-Faktor-Authentifizierung eingerichtet. Wenn dies der Fall ist und Terminal Anmeldeinformationen anfordert, verwenden Sie Ihren Benutzernamen - aber NICHT Ihr Github-Passwort. Für die 2-Faktor-Authentifizierung müssen Sie Ihren Authentifizierungscode verwenden (für mich wurde dieser von Authy auf meinem Telefon generiert und ich musste ihn für das pw in das Terminal kopieren).
quelle