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.

17voto

Abhishek Tomar Punkte 380

Wenn Sie Probleme haben, eine Verbindung mit Ihrem Github-Unternehmenskonto herzustellen, führen Sie die folgenden Schritte aus

Lösung #1

ERROR: git@github.com: Permission denied (public key). fatal: Could not read
from remote repository. Please make sure you have the correct access
rights

Lösung (OSX)

  • Öffnen Sie Ihr Terminal und folgen Sie den folgenden Befehlen

  • $ cd ~

  • $ sudo su

  • $ ssh-keygen

    • Geben Sie die Datei an, in der der Schlüssel gespeichert werden soll (/var/Root/.ssh/id_rsa): $ id_rsa
    • Geben Sie die Passphrase ein (leer für keine Passphrase): $ Enter drücken
    • Geben Sie dieselbe Passphrase erneut ein: $ Enter drücken
  • $ cd ~/.ssh

  • $ cat id_rsa.pub

  • Inhalt der Anzeige kopieren. enter image description here

  • Öffnen Sie GitHub und klicken Sie auf Ihr Profilsymbol Einstellungen>SSH- und GPC-Schlüssel

  • Klicken Sie auf die Schaltfläche "Neuer ssh-Schlüssel enter image description here

  • Geben Sie einen beliebigen Titel und Schlüssel ein, den Sie kopiert haben. enter image description here

  • Prüfen Sie jetzt, ob Ihr Problem gelöst ist

Lösung #2

ERROR 2: remote: Password authentication is not available for Git operations.
remote: You must use a personal access token or SSH key.
remote: See https://github.compnay.com/settings/tokens or https://github.compnay.com/settings/ssh
fatal: unable to access 'https://github.company.com/repo/app.git/': The requested URL returned an error: 403

Die Unterstützung für die Passwortauthentifizierung wurde am 13. August 2021 entfernt. Bitte verwenden Sie stattdessen einen persönlichen Zugangstoken.

https://namespaceit.com/blog/remote-support-for-password-authentication-was-removed-on-august-13-2021-please-use-a-personal-access-token-instead

16voto

jfunk Punkte 4937

Ich habe diesen Fehler erhalten. Es stellte sich heraus, dass ich gerade ein Upgrade von OSX auf Sierra durchgeführt hatte und mein alter Schlüssel nicht mehr registriert war.

Zuerst dachte ich, es sei "Das Upgrade auf macOS Sierra macht deine SSH-Schlüssel kaputt und sperrt dich von deinen eigenen Servern aus"

Aber dem war ich aus dem Weg gegangen. Es stellte sich heraus, dass ich nur meinen vorhandenen Schlüssel neu registrieren musste:

ssh-add -K

Und geben Sie die Passphrase ein... fertig!

12voto

Damika Punkte 612

Ja, auch ich hatte diese Frage :/ Ich wollte mein Projekt auf Github im HTTP-Typ (nicht im SSH-Typ) pushen. Ich musste bei jedem Push meinen Benutzernamen und mein Passwort eingeben. Also habe ich zuerst den Code für den folgenden Typ eingegeben

git remote add origin git@github.com:YOUR-GIT/YOUR-REPO.git

und ich habe

git@github.com: Erlaubnis verweigert (publickey). fatal: Konnte nicht vom entfernten Repository lesen.

Wie auch immer, ich habe meine Probleme mit den folgenden Methoden gelöst

  1. git remote rm origin Ihr entferntes Git-Repository entfernen
  2. git remote Prüfen Sie nun, ob Ihr entferntes Repository entfernt wurde

URL = https://github.com/<username>/<repository>.git

  1. git remote add origin URL Fügen Sie erneut Ihre URL hinzu, um das Remote-Repository zu erstellen
  2. git push -u origin master
    Sie können Ihre Inhalte an ein entferntes Repository übertragen. Wenn Sie hier "-u" mit dem Befehl verwenden, erstellen Sie einen Tracking-Zweig und mit Hilfe des Tracking-Zweigs im entfernten Repository müssen Sie Git nicht mitteilen, welchen Zweig Sie in den nächsten Schritten pushen :)
    Und hier, wenn Sie Linux verwenden, fragt Git nach Benutzernamen und Passwort, bevor der Inhalt gepusht wird. Und geben Sie Ihre relevanten Anmeldeinformationen ein.

Um zu verhindern, dass Benutzername und Passwort bei jedem Push angegeben werden Sie müssen die Git-Konfiguration ändern

Zum Auflisten Ihrer Git-Konfiguration - git config --global --list
Sie werden sehen

user.name=<your_username>
user.email=<your_email>

Sie müssen also Folgendes hinzufügen credential.helper Attribut zu Ihrer Git-Konfiguration hinzufügen zu diesem

5. git config --global --add credential.helper store Fügen Sie Folgendes in Ihr Terminal ein Nun können Sie Ihren Dateien neue Elemente hinzufügen git add. , git commit -m "<message>" , git push
Auch dort wird git Ihren Benutzernamen und Ihr Passwort abfragen und das wird das letzte Mal sein. Und für die nächsten Git-Pushes wird Git keinen Benutzernamen und kein Passwort mehr von Ihnen verlangen :)

12voto

roman Punkte 766

Ich glaube, ich habe die beste Antwort für Sie, Ihre Git-Anwendungen lesen Ihre id_rsa.pub im Root-Benutzerverzeichnis

/home/root/.ssh/id_rsa.pub

Aus diesem Grund kann Ihr Schlüssel in /home/Ihr_Benutzername/.ssh/id_rsa.pub nicht von Git gelesen werden. Sie müssen also den Schlüssel in /home/Root/.ssh/ erstellen.

$ sudo su
$ ssh-keygen
$ cd ~/.ssh
$ cat id_rsa.pub

Kopieren Sie dann den Schlüssel in Ihr Github-Konto. Bei mir hat es funktioniert. Sie können es versuchen.

11voto

Rose Perrone Punkte 58235

Vergewissern Sie sich ssh-add -l zeigt einen Fingerabdruck eines SSH-Schlüssels, der in der Liste der SSH-Schlüssel in Ihrem Github-Konto vorhanden ist.

Wenn die Ausgabe leer ist, Sie aber wissen, dass Sie einen privaten SSH-Schlüssel haben, der mit Ihrem Github-Konto funktioniert, führen Sie ssh-add auf diesen Schlüssel (zu finden in ~/.ssh . Es heißt id_rsa standardmäßig, also werden Sie wahrscheinlich ssh-add id_rsa ).

Andernfalls folgen Sie diese Anleitungen um ein SSH-Schlüsselpaar zu erzeugen.

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