Git-Fehler: "Bitte stellen Sie sicher, dass Sie die richtigen Zugriffsrechte haben und das Repository vorhanden ist."

96

Ich verwende TortoiseGit unter Windows. Wenn ich versuche, über das Kontextmenü des Standard-Windows-Explorers zu klonen, wird folgende Fehlermeldung angezeigt:

Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen und das Repository vorhanden ist

Genauer gesagt ist der Schnappschuss des Terminals der folgende:

git.exe-Klon --progress -v "git @ arobotdev: \ git \ AlfaRobot.git" "C: \ Work \ AlfaRobot"

Klonen in 'C: \ Work \ AlfaRobot' ...
Berechtigung verweigert, bitte versuchen Sie es erneut.
Zugang verweigert, versuche es bitte erneut.
Berechtigung verweigert (publickey, Passwort).
fatal: Konnte nicht aus dem Remote-Repository lesen.

Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen
und das Repository vorhanden ist.

git wurde nicht sauber beendet (Exit-Code 128) (21450 ms @ 19.09.2014 10:36:58)

Was soll ich tun, damit Git richtig funktioniert?

Alex
quelle
1
Versuchen Sie, SSH Keygen zu generieren und fügen Sie hinzu
Raja Simon
Verwenden von Shell (oder Git Bash in Windows) zum Erstellen eines SSH-Schlüssels:$ ssh-keygen -t rsa -C "[email protected]"
Belter
Hatte diesen Fehler nach dem Ändern der Repos in [email protected] Adressen, weil das Passwort nicht die ganze Zeit eingegeben werden musste. Der eigentliche Fehler, der dazu führte, war das Vergessen, meinen öffentlichen Schlüssel auf github hinzuzufügen.
dasWesen

Antworten:

73

Ihre Git-URL hat sich möglicherweise geändert. Ändern Sie die URL im lokalen Verzeichnis mit dem folgenden Befehl

git remote set-url origin git@yourGitUrlHere
Vishnu
quelle
16
FYI Github verwendet jetzt ein URL-Schema:git remote set-url origin https://github.com/username/repository.git
RyPope
2
@ RyPope Sie können jedes Protokoll verwenden, entweder git (ssh) oder https, es ist Ihr Wunsch. Github hat jetzt beide Protokolle gitund https.
Vishnu
@ Vishnu Was ist das XXXXXXX?
244boy
@ RyPope Wandle es in eine Antwort um
ishandutta2007
Sehr häufiger Fehler wurde von mir gemacht. Ich habe mit dem Befehl clip kopiert xclip -sel clip < ~/.ssh/id_rsa.pub, aber beim Einfügen in das Eingabefeld für den Github-Schlüssel habe ich die letzte neue Zeile mit der Rücktaste entfernt, wodurch der öffentliche Schlüssel tatsächlich geändert wurde. Kopieren Sie also den öffentlichen ssh-Schlüssel immer so wie er ist, ohne den letzten Zeilenumbruch zu entfernen.
Amreesh Tyagi
61

Dieses Problem kann bei Ihrem SSH-Agenten auftreten. Ihr SSH-Schlüssel wurde nicht mit SSH-Agent hinzugefügt. Sie müssen die folgenden Schritte mit Ihrem Terminal ausführen: -

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

    Agent pid 5867

  2. $ ssh-add

    Geben Sie die Passphrase für /home/you/.ssh/id_rsa ein: [] Identität hinzugefügt: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

dann wird es funktionieren..cheers J.

Onkar_M18
quelle
11
Beim Klonen wird immer noch ein Fehler fatal: Could not read from remote repository.
angezeigt
Vielen Dank, dass es für mich funktioniert hat. Ich habe einen anderen Schlüssel als den Standard-ID_RSA erstellt. Ich muss also nur den obigen Befehl ssh-add -K ~ / .ssh / id_rsa_other_project ausführen.
Nitesh
Ja, das wird überhaupt kein Problem beheben. Das Hinzufügen Ihrer Identität zu ssh stoppt nur jedes Mal,
wenn Sie
Prost. Ich war nicht gelaufen brew update. Als ich lief, ssh-addbevor ich den Befehl ausführte, funktionierte es. Ich hoffe, ich muss das nicht die ganze Zeit wiederholen.
Nyxee
Immer noch Fehler "Überprüfung des Hostschlüssels fehlgeschlagen. Schwerwiegend: Konnte nicht aus dem Remote-Repository lesen." Aber das Hinzufügen eines bekannten Hosts wurde für mich behoben
Rickvian
36

Versuchen Sie, HTTPS anstelle von SSH zu verwenden, während Sie den Klon von GIT übernehmen. Verwenden Sie diese URL zum Klonen. Sie können Gitbase, Android Studio oder ein anderes Tool zum Klonen des Zweigs verwenden. Geben Sie hier die Bildbeschreibung ein

Lovekush Vishwakarma
quelle
34

Für mich lag es daran, dass kein SSH-Schlüssel auf der Maschine vorhanden war. Überprüfen Sie den SSH-Schlüssel lokal:

$ cat ~/.ssh/id_rsa.pub

Dies ist Ihr SSH-Schlüssel. Fügen Sie es Ihren SSH-Schlüsseln im Repository hinzu.
In gitlab gehe zu

Profileinstellungen -> SSH-Schlüssel

und fügen Sie den Schlüssel hinzu

Jacek Góraj
quelle
7
Ich habe den Schlüssel wie erwähnt hinzugefügt und erhalte immer noch die Nachricht, dass der Zugriff verweigert wurde. Bitte helfen Sie
Jet
17

Github verwendet jetzt ein URL-Schema

git remote set-url origin https://github.com/username/repository.git

RyPope
quelle
9

Sie versuchen, das Repository über ssh: zu klonen git@arobotdev..., und Ihre SSH-Schlüssel sind auf dem Server nicht richtig festgelegt. Dafür gibt es mehrere Gründe:

  1. Ihr öffentlicher Schlüssel wird möglicherweise nicht in der Datei authorized_keys des Benutzers git gespeichert
  2. Wenn 1 nicht wahr ist, wird Ihr privater Schlüssel nicht im Ordner .ssh / Ihres HOMEDIR gespeichert.
  3. Berechtigungen sind nicht richtig festgelegt

Wenn alle drei oben git@arobotdev:AlfaRobot.git genannten Punkte nicht wahr sind , kann meine einzige Schlussfolgerung darin bestehen, Folgendes zu versuchen: Angenommen, AlfaRobot.git befindet sich in HOMEDIR des Git-Benutzers und nicht in einem Ordner namens git, der sich in HOMEDIR des Benutzers git befindet.

Mudassir Razvi
quelle
5

Die rsa.pub (dh der generierte öffentliche Schlüssel) muss auf der Seite github >> settings >> ssh keys hinzugefügt werden. Stellen Sie sicher, dass Sie diesen öffentlichen Schlüssel nicht in den Repository-Einstellungen >> Bereitstellungsschlüssel hinzugefügt haben. Wenn ja, entfernen Sie den Eintrag von hier und fügen Sie ihn an der ersten Stelle hinzu.

Einrichtung der pub-privaten Schlüssel im Detail .

Es wird also funktionieren!

Parasrish
quelle
3
  1. Das erste, was Sie bestätigen möchten, ist die Internetverbindung. Internet-Probleme besagen jedoch meistens, dass auf das Repo nicht zugegriffen werden kann.

  2. Stellen Sie sicher, dass Sie ssh sowohl lokal als auch auf Ihrem Github eingerichtet haben. Sehen Sie wie

  3. Stellen Sie sicher, dass Sie die ssh git-Fernbedienung verwenden. Wenn Sie das https geklont haben, setzen Sie die URL einfach mit diesem git-Befehl auf die ssh-URLgit remote set-url origin [email protected]:your-username/your-repo-name.git

  4. Wenn Sie ssh ordnungsgemäß eingerichtet haben, es aber gerade nicht mehr funktioniert, gehen Sie wie folgt vor:

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

    Wenn das Problem weiterhin besteht, stellen Sie sicher, dass Sie das SSH nicht aus Ihrem Github gelöscht haben. In einem Fall, in dem das SSH aus Github gelöscht wurde, können Sie es wieder hinzufügen. Verwenden pbcopy < ~/.ssh/id_rsa.pubSie diese Option, um den SSH-Schlüssel zu kopieren. Wechseln Sie dann zu Ihrer Github-SSH-Einstellung und fügen Sie sie hinzu.

Ich werde empfehlen, immer ssh zu verwenden. Für die meisten Teams, mit denen ich gearbeitet habe, können Sie nur dann auf das Repo zugreifen (das größtenteils privat ist), wenn Sie ssh verwenden. Für einen Anfänger mag es schwieriger erscheinen, aber später werden Sie es einfacher und sicherer finden.

Obinna Nnenanya
quelle
3

Ich hatte dieses Problem und stelle fest, dass mein System eine falsche DNS-Adresse hatte. Überprüfen Sie Ihr Netzwerk und testen Sie mit

ssh -vvv [email protected]

Und lesen Sie die Ausgabenachrichten. Wenn Sie sehen "Sie können git oder hg verwenden, um eine Verbindung zu Bitbucket herzustellen." , alles ist ok.

albert
quelle
Hallo @ Albert, ich stehe vor dem gleichen Problem, aber für gitlab.com. Wie haben Sie es geschafft, das Problem zu beheben?
Abiratsis
@AlexandrosBiratsis Ich ersetze meine DNS durch eine andere Adresse. Versuchen Sie es mit opendns oder google dns.
Albert
2

Ein alternatives Problem kann Ihre Internetverbindung sein. Offensichtlich vielleicht, aber ich habe ein paar Minuten gebraucht, um herauszufinden, dass mein WLAN nicht funktioniert hat :)

BoltzmannBrain
quelle
1
Laut der Fehlermeldung sieht es hier nicht so aus, als wäre die Internetverbindung ein Problem.
jbmusso
2

So löse ich dieses Problem. Ich habe Babun (mintty.exe) unter Win7 / 10 verwendet. Wenn ich viele der oben genannten Lösungen ausprobiert habe und keine davon funktioniert. Mir wurde klar, dass ich vielleicht nur einen falschen SSH-Agenten verwendet habe ... Also renne ich echo $GIT_SSH, um herauszufinden, es zeigt den Weg zu Plink.exe. Was ich eigentlich erwartet habe, ist OpenSSH.

Also füge ich der ~/.zshrcDatei folgenden Einzeiler hinzu

Hinweis 1: Sie können es auch direkt in babun ausführen.
Hinweis 2: Wenn Sie bash verwenden, ist die Konfigurationsdatei.bashrc

export GIT_SSH=$(which ssh)

Und es funktioniert!

Paris Qian Sen.
quelle
2

.get/configFügen Sie diese Zeilen zu Ihrer Datei hinzu (dank @kovshenin Antwort Git Pull: Authentifizierung ändern ):

[credential]
    helper = wincred
Khaled AbuShqear
quelle
Oder ~ / .gitconfig
Marcos
2

Versuchen Sie https anstelle von ssh. Wählen Sie auf der Projekthomepage die Option https, von der Sie die Klon-URL kopieren.

Vedha Peri
quelle
2

Wenn es vorher funktioniert hat und plötzlich aufgehört hat zu funktionieren:

Dieses Problem kann verursacht werden, da ssh-agentes bei Neustarts manchmal nicht dauerhaft ist. Sie sollten überprüfen, ob ssh-agentIhr Schlüssel hinzugefügt wurde:

ssh-add -l -E md5

Wenn Sie die Ausgabe erhalten wie:

The agent has no identities.

es bedeutet, dass Sie ssh-agentIhren Schlüssel verloren haben. In diesem Fall müssen Sie lediglich den Identitätsschlüssel erneut hinzufügen. Etwas wie:

ssh-add ~/.ssh/git_rsa

Der Fehler sollte jetzt verschwinden!

Shivam
quelle
Dies ist mir passiert, als ich ein anderes SSH für ein anderes Konto erstellt habe, also füge ich einfach das Fehlende git_rsain die Liste ein
John
1

Dies kann auch passieren, wenn Sie über ein VPN eine Verbindung zu Ihrem Git-Repository herstellen. Stellen Sie sicher, dass Sie mit dem VPN verbunden sind, mit dem Sie auf die Ressourcen Ihrer Organisation zugreifen.

John Doe
quelle
1

Beim Hochladen des Projekts auf gitlab ist dieser Fehler aufgetreten. Ich habe nicht von git geklont, sondern stattdessen ein Projekt hochgeladen. Um Ihren Code an gitlab zu senden, haben Sie zwei Möglichkeiten, entweder ssh oder https. Wenn Sie https verwenden, müssen Sie den Benutzernamen und das Passwort des Gitlab-Kontos eingeben. Um Ihren Code an Git zu senden, können Sie den folgenden verwenden.

Zum ersten Mal auf Git pushen

>$ cd
>$ mkdir .ssh;cd .ssh
>$ ssh-keygen -o -t rsa -b 4096 -C "[email protected]"

Der Parameter -C ist optional. Er enthält einen Kommentar am Ende Ihres Schlüssels, um ihn von anderen zu unterscheiden, wenn Sie mehrere haben. Dadurch werden id_rsa (Ihr privater Schlüssel) und id_rsa.pub (Ihr öffentlicher Schlüssel) erstellt. Wir geben unseren öffentlichen Schlüssel weiter und behalten unseren privaten Schlüssel - na ja, privat. In den Benutzereinstellungen von Gitlab können Sie dann Ihren öffentlichen Schlüssel zu Ihrem Konto hinzufügen , damit wir ihn endgültig pushen können.

Verwenden Sie in Ihrem Projektspeicherort (Verzeichnis) den folgenden Befehl

git init

Es transformiert das aktuelle Verzeichnis in ein Git-Repository. Dies fügt dem aktuellen Verzeichnis ein .git-Unterverzeichnis hinzu und ermöglicht das Aufzeichnen von Revisionen des Projekts.

Drücken Sie mit https-Pfad

git push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master

Drücken Sie mit SSH-Pfad

git push --set-upstream [email protected]:Account_User_Name/Your_project_Name.git master

- set-upstream: teilt git den Pfad zum Ursprung mit. Wenn Git zuvor auf Ihren aktuellen Zweig geschoben hat, merkt es sich, wo der Ursprung liegt

master : Dies ist der Name des Zweigs, an den ich beim Initialisieren senden möchte

Gurjinder Singh
quelle
0

Wie bei anderen Antworten war die Verwendung httpsanstelle von sshdie Lösung.

Ich poste eine Antwort, um ein konkretes Beispiel für eine mögliche Lösung zu geben. Ich habe dieses Problem mit bitbucket gelöst, als ich die Remote-URL mit dieser Befehlszeile in HTTPS geändert habe:

git remote set-url origin <bitbucket_URL>

Danach konnte ich den Inhalt mit diesem Befehl in das Repository verschieben:

git push -u origin --all

Und dann könnte ich auch Sourcetree verwenden

Sébastien Gicquel
quelle
0

Seltsamerweise habe ich diesen Fehler nur in einem meiner vielen Repos erhalten.

Mein Problem war nach der Installation des neuen GitHub Desktop für Windows, in dem der vorherige alte GitHub für Win Schlüssel aufbewahrt hat ~/.ssh/github_rsaund ~/.ssh/github_rsa.pubin dem der neue GitHub für Win dies erwartet, ~/.ssh/id_rsasodass die Lösung nur die vorhandenen privaten und öffentlichen Schlüssel umbenannte:

~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub

Danach kann ich ohne Probleme wieder auf das Repo zugreifen.

Mythos
quelle
0

Verwenden Sie Ihren https-Ursprung anstelle der SSH-URL

Beispiel:

git remote add origin  https://gitlab.com/user/folder.git
Stilo Bit
quelle
0

Ich benutze Ubuntu

nach vielen Antworten zu lesen, keiner von ihnen kann das Problem lösen, auch wenn ich schon SSH Schlüssel zu meinem git Konto hinzugefügt, und versucht Test es mit ssh -T [email protected]und es wird gesagtWelcome <my username> , aber es hielt mir immer noch nicht sagen , Zugriffsrechte haben. Dann fand ich den Grund ist:

Wenn Sie kein rootBenutzer sind, müssen Sie normalerweise mit ausführensudo für jeden git-Befehl .

beim Laufen sudo git clone <SSH....>(zum Beispiel). Es wird mit rootErlaubnis ausgeführt, aber versehentlich, wenn ich einen SSH-Schlüssel erstelle, führe ich ihn als normalen Benutzer aus und speichere den Schlüssel ~/.ssh/id_rsadarin. Der absolute Pfad wird aufgelöst /home/username/.ssh/id_rsa. Und dabeisudo git clone ... wird nach SSH gesucht/root/.ssh/id_rsa

Warum kann ich mir da sicher sein? Um zu sehen, wo Git nach Ihrem SSH-Schlüssel sucht. Führen Sie diesen Befehl aus : sudo GIT_TRACE=1 GIT_SSH_COMMAND="ssh -vvv" git clone <your repository in SSH>. Es zeigt Ihnen, wo es nach Ihrem SSH-Schlüssel sucht.

Die von mir vorgeschlagene LÖSUNG lautet also:

Erstellen Sie Ihren SSH-Schlüssel neu (folgen Sie dieser Anweisung ), ABER führen Sie ihn sudo suim ersten Schritt aus, dann sollte es Ihnen gut gehen.

Duc Trung Mai
quelle
0

Das Hinzufügen des SSH-Schlüssels hat bei mir funktioniert. Sie können den ssh-Schlüssel mit dem Befehl ssh-keygen auf dem Mac erstellen. Sie sollten in der Lage sein, das Menü Schlüssel bereitstellen unter YourRepository> Einstellungen zu sehen. Vergessen Sie nicht, die Option Schreibzugriff zulassen zu aktivieren.

Screenshot des Menüs "Schlüssel bereitstellen"

tlrmacl
quelle
0

Sehr häufiger Fehler wurde von mir gemacht. Ich habe mit dem Befehl clip kopiert xclip -sel clip < ~/.ssh/id_rsa.pub, aber beim Einfügen in das Eingabefeld für den Github-Schlüssel habe ich die letzte neue Zeile mit der Rücktaste entfernt, wodurch der öffentliche Schlüssel tatsächlich geändert wurde.

Kopieren Sie also den öffentlichen ssh-Schlüssel immer so wie er ist, ohne den letzten Zeilenumbruch zu entfernen.

Amreesh Tyagi
quelle
0

Für mich hatte ich ein Problem mit dem Firmen-VPN, nachdem die Verbindung funktioniert hatte.

Überprüfen Sie die Verbindung mit Github mit dem Befehl ssh -vvvT [email protected]

rana_stack
quelle
0

Der Wechsel zur Verwendung von https funktioniert. Wechseln Sie zuerst zu https anstatt zu ssh-Schlüsseln. Git Remote Set-URL Ursprung

Es wird dann nach dem Git-Benutzernamen und dem Passwort gefragt.

Stephen Mwangi Wanjohi
quelle