1120 Stimmen

GitHub-Fehlermeldung - Berechtigung verweigert (publickey)

Hat jemand diesen Fehler gesehen und weiß, was zu tun ist?

Ich verwende das Terminal, ich bin im Root, das GitHub-Repository existiert und ich weiß nicht, was ich jetzt tun soll.

> git push -u origin master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

10voto

N. Osil Punkte 474

Falls Sie nicht auf Ihr eigenes Repository zugreifen oder innerhalb eines geklonten Repositorys klonen (mit einigen "git submodule..."-Befehlen):

Im Heimatverzeichnis Ihres Repositorys:

$ ls -a

1. Öffnen Sie ".gitmodules", und Sie werden so etwas wie das hier finden:

[submodule "XXX"]
    path = XXX
    url = git@github.com:YYY/XXX.git

Ändern Sie die letzte Zeile in die HTTPS des Repositorys, das Sie abrufen möchten:

[submodule "XXX"]
    path = XXX
    https://github.com/YYY/XXX.git

".gitmodules" speichern y laufen. den Befehl für Submodule, und ".git" wird aktualisiert.

2. Öffnen Sie ".git", gehen Sie zur Datei "config", und Sie werden etwas wie dieses finden:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/YYY/XXX.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[submodule "XXX"]
    url = git@github.com:YYY/XXX.git

Ändern Sie die letzte Zeile in die HTTPS des Repositorys, das Sie abrufen möchten:

    url = https://github.com/YYY/XXX.git

In diesem Fall liegt das Hauptproblem also einfach bei der URL. HTTPS eines jeden Repositorys kann jetzt oben auf der Repository-Seite gefunden werden.

9voto

3AK Punkte 973

Ich habe Github früher für eines meiner PHP-Projekte verwendet. Während ich github benutzte, habe ich ssh statt https verwendet. Ich hatte meine Maschinenaufstellung und jedes Mal, wenn ich den Code festschreiben und veröffentlichen wollte, wurde ich nach meinem rsa-Schlüssel-Passwort gefragt.

Nach einigen Tagen hörte ich auf, an dem php-Projekt zu arbeiten und vergaß mein rsa-Passwort. Kürzlich begann ich an einem Java-Projekt zu arbeiten und wechselte zu Bitbucket. Da ich das Passwort vergessen hatte und es eine keine Möglichkeit, sie wiederherzustellen Ich schätze, ich habe mich entschieden, das https (empfohlene) Protokoll für das neue Projekt zu verwenden und bekam den gleichen Fehler wie in der Frage beschrieben.

Wie habe ich es gelöst?

  1. Ich habe diesen Befehl ausgeführt, um meinem Git mitzuteilen, dass es https anstelle von ssh verwenden soll:

    git config --global url."https://".insteadOf git://
  2. Entfernen Sie gegebenenfalls eine Fernbedienung

    git remote rm origin
  3. Wiederholen Sie alles von Git-Init a Git-Push und es funktioniert!

PS: Ich habe während des Debugging-Prozesses auch ssh von meinem Rechner deinstalliert, weil ich dachte, dass das Entfernen das Problem beheben würde. Ja ich weiß!! :)

6voto

xproph Punkte 1061

OK, es gibt ein paar Lösungen für dieses Problem, einige davon wurden vielleicht schon erwähnt, aber ich möchte sie nur zusammenfassen:

  • Vergewissern Sie sich, dass Ihre Schlüssel vorhanden sind, standardmäßig ein anderer Ordner ~/.ssh/, d. h. id.rsa und id.rsa.pub

  • sicherstellen, dass die Schlüssel die richtigen Berechtigungen haben, können Sie chmod ausführen:

    chmod 600 ~/.ssh/id_rsa

    chmod 644 ~/.ssh/id_rsa.pub

  • Vergewissern Sie sich, dass der Inhalt Ihres öffentlichen Schlüssels (id_rsa.pub) mit dem in der Konfiguration des entfernten Repositorys hochgeladenen Schlüssel übereinstimmt.

  • Beheben Sie endlich die Probleme mit ssh agent: ssh-add

Weitere Informationen: https://itcodehub.blogspot.com/2015/01/ssh-add-problems-with-ssh-agent-and.html

5voto

user7506706 Punkte 51

Ich hatte kürzlich das gleiche Problem. Das könnte helfen, wenn Sie sofort eine Lösung brauchen, aber das muss bei jedem Neustart des Systems gemacht werden

Führen Sie im Terminal den Befehl : ssh-add ~/.ssh/id_rsa

Geben Sie Ihr Systempasswort ein, und das sollte funktionieren.

5voto

prosti Punkte 34344

Erlauben Sie den Schreibzugriff für den Schlüssel (Identität) und klicken Sie dann auf <strong>Add key</strong>

enter image description here

Wenn Sie unter Windows arbeiten, finden Sie weitere Einzelheiten unter Verwendung von Github über SSH .

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