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.

46voto

george mano Punkte 5421

Das Problem ist gelöst, wenn Sie den ssh-Zugang in einen https-Zugang zum entfernten Repository ändern:

git remote set-url origin https_link_to_repository

git push -u origin master

36voto

xinerd Punkte 371

Angenommen, Sie verbinden GitHub über SSH, können Sie den folgenden Befehl ausführen, um dies zu bestätigen.

$git config --get remote.origin.url

Wenn Sie ein Ergebnis mit folgendem Format erhalten git@github.com:xxx/xxx.github.com.git, sollten Sie Folgendes tun.

Generieren Sie einen SSH-Schlüssel (oder verwenden Sie einen vorhandenen). Wenn Sie bereits einen haben, müssen Sie ihn nur zum ssh-Agent (Schritt 2) und zu Ihrem GitHub-Konto (Schritt 3) hinzufügen.

unten sind für diejenigen, die keinen SSH-Schlüssel haben.

Schritt 1 Erzeugen eines öffentlichen/privaten rsa-Schlüsselpaares.

$ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

Sie werden aufgefordert, zu bestätigen, wo der SSH-Schlüssel gespeichert werden soll und welche Passphrase Sie verwenden möchten.

Schritt 2 Fügen Sie Ihren Schlüssel zum ssh-agent hinzu

  • Sicherstellen, dass ssh-agent aktiviert ist

    $eval "$(ssh-agent -s)"

  • Fügen Sie Ihren SSH-Schlüssel zum ssh-agent hinzu:

    $ssh-add ~/.ssh/id_rsa

Schritt 3 Fügen Sie Ihren SSH-Schlüssel zu Ihrem Konto hinzu

$sudo apt-get install xclip

$xclip -sel clip < ~/.ssh/id_rsa.pub

Fügen Sie dann den kopierten Schlüssel zu GitHub hinzu

Ir a Einstellungen -> SSH-Schlüssel (Seitenleiste Persönliche Einstellungen)-> SSH-Schlüssel hinzufügen ->Formular ausfüllen (Schlüssel befindet sich in der Zwischenablage, einfach ctrl+v benutzen)-> Schlüssel hinzufügen

Nachdem Sie die oben genannten Schritte durchgeführt haben, sollten Sie das Berechtigungsproblem gelöst haben.

Referenz-Link: SSH-Schlüssel generieren .

32voto

Badr Bellaj Punkte 8859

Eine andere Lösung:

die SSH-Schlüssel zu erstellen, geben Sie ssh-keygen -t rsa -C "your_email@example.com" . Dadurch werden die beiden Dateien id_rsa und id_rsa.pub erstellt.

Fügen Sie die id_rsa zur ssh-Liste auf dem lokalen Computer hinzu: ssh-add ~/.ssh/id_rsa.

Nach der Erzeugung der Schlüssel erhalten Sie den Pubkey mit :

cat ~/.ssh/id_rsa.pub 

erhalten Sie etwas wie :

cat ~/.ssh/id_rsa.pub 

ssh-rsa AAAB3NzaC1yc2EAAAADAQABAAACAQCvMzmFEUPvaA1AFEBH6zGIF3N6pVE2SJv9V1MHgEwk4C7xovdk7Lr4LDoqEcqxgeJftwWQWWVrWWf7q9qCdHTAanH2Q5vx5nZjLB+B7saksehVOPWDR/MOSpVcr5bwIjf8dc8u5S8h24uBlguGkX+4lFJ+zwhiuwJlhykMvs5py1gD2hy+hvOs1Y17JPWhVVesGV3tlmtbfVolEiv9KShgkk3Hq56fyl+QmPzX1jya4TIC3k55FTzwRWBd+IpblbrGlrIBS6hvpHQpgUs47nSHLEHTn0Xmn6Q== user@email.com

Kopieren Sie diesen Schlüssel (Wert) und gehen Sie zu github.com und fügen Sie unter den Einstellungen (ssh und pgp Schlüssel) Ihren öffentlichen Schlüssel hinzu.

22voto

marcdahan Punkte 2302

Das hat bei mir funktioniert:

1- alle Ursprünge entfernen

git remote rm origin  

(vgl. https://www.kernel.org/pub/software/scm/git/docs/git-remote.html )

*remote : "Verwalten Sie die Menge der Repositories ("remotes"), deren Zweige Sie verfolgen.

*rm : "Entfernen Sie die Fernbedienung namens . Alle Remote-Tracking-Zweige und Konfigurationseinstellungen für die Remote werden entfernt."

2- Überprüfen Sie, ob alles entfernt wurde:

git remote -v  

3- neuen Ursprungsmaster hinzufügen

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

Das ist alles, Leute!

22voto

d1jhoni1b Punkte 6613

Zunächst müssen wir prüfen, ob auf Ihrem Computer ssh-Schlüssel vorhanden sind. Öffnen Sie Terminal und führen Sie aus:

ls -al ~/.ssh

#or

cd ~/.ssh
ls

und das listet die Dateien in Ihrem .ssh-Verzeichnis auf

Und schließlich je nachdem, was Sie sehen (in meinem Fall war):

 github_rsa  github_rsa.pub known_hosts

Versuchen Sie einfach, Ihre RSA einzurichten, und hoffentlich wird das Ihre "git push origin"-Probleme lösen

$ ssh-keygen -lf ~/.ssh/github_rsa.pub

HINWEIS: RSA-Zertifikate sind schlüsselgepaart, d.h. Sie haben ein privates und ein öffentliches Zertifikat, das private ist für Sie nicht zugänglich, da es zu github gehört (in diesem Fall), aber das öffentliche ist das, was Ihnen fehlen könnte, wenn dieser Fehler auftritt (zumindest war das mein Fall, mein github-Konto oder Repo ist irgendwie durcheinander geraten und ich musste den öffentlichen Schlüssel "verlinken", der vorher generiert wurde)

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