Ich verwende TortoiseGit unter Windows. Wenn ich versuche, über das Kontextmenü des Standard-Windows-Explorers zu klonen, erhalte ich folgende Fehlermeldung:
Stellen Sie sicher, dass Sie über die richtigen Zugriffsrechte verfügen und das Repository vorhanden ist
Genauer gesagt ist der Schnappschuss von Terminal das Folgende:
git.exe klon --progress -v "git @ arobotdev:\git\AlfaRobot.git" "C:\Work\AlfaRobot"
Klonen in 'C:\Work\AlfaRobot' ...
Zugang verweigert, versuche es bitte erneut.
Zugang verweigert, versuche es bitte erneut.
Erlaubnis verweigert (Publickey, Passwort).
fatal: Konnte nicht aus dem Remote-Repository lesen.
Bitte vergewissern Sie sich, dass Sie die richtigen Zugriffsrechte haben
und das Repository existiert.
git wurde nicht sauber beendet (Beendigungscode 128) (21450 ms @ 19.09.2014 10:36:58)
Was muss ich tun, damit git richtig funktioniert?
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 [email protected]
Dieses Problem könnte bei Ihrem ssh-agent liegen, Ihr ssh-Schlüssel wurde nicht mit ssh-agent hinzugefügt. Sie müssen die folgenden Schritte mit Ihrem Terminal ausführen: -
$ eval "$ (ssh-agent -s)"
Agent pid 5867
$ 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.
Für mich war es kein SSH-Schlüssel auf der Maschine. Ü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 gehen Sie zu
profileinstellungen -> SSH-Schlüssel
und fügen Sie den Schlüssel hinzu
Sie versuchen, das Repository über ssh: [email protected]
zu klonen, und Ihre SSH-Schlüssel sind nicht ordnungsgemäß auf dem Server festgelegt. Dafür gibt es mehrere Gründe:
Wenn alle 3 oben nicht zutreffen, kann ich nur Folgendes versuchen: [email protected]:AlfaRobot.git
Angenommen, AlfaRobot.git befindet sich in HOMEDIR von git user und nicht in einem Ordner namens git, der in HOMEDIR von user git liegt.
Der rsa.pub (d. H. 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 >> Implementierungsschlüsseln hinzugefügt haben. Wenn ja, entfernen Sie den Eintrag von hier und fügen Sie ihn an erster Stelle hinzu.
Einrichtung der öffentlichen Schlüssel in detail .
Es wird also funktionieren!
Versuchen Sie es mit https anstelle von ssh. Wählen Sie auf der Projekthomepage die Option https aus, von der Sie die Klon-URL kopieren.
fügen Sie diese Zeilen Ihrer .get/config
-Datei hinzu (dank @kovshenin answer Git Pull: Change Authentication ):
[credential]
helper = wincred
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. Ich habe festgestellt, dass ich vielleicht gerade den falschen ssh-Agenten verwendet habe ... Also renne ich echo $GIT_SSH
, um herauszufinden, dass es den Pfad zu Plink.exe
____ gibt. Was ich eigentlich erwartet habe, ist OpenSSH.
Also füge ich der ~/.zshrc
-Datei den folgenden Einzeiler hinzu
Anmerkung 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!
Das erste, was Sie möglicherweise bestätigen möchten, ist die Internetverbindung. Internetprobleme besagen jedoch meist, dass auf das Repo nicht zugegriffen werden kann.
Stellen Sie sicher, dass Sie ssh sowohl lokal als auch auf Ihrem Github eingerichtet haben. Siehe wie
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-URL git remote set-url Origin [email protected]:your-username/your-repo-name.git
Wenn Sie ssh richtig 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 den ssh nicht von Ihrem Github gelöscht haben. In einem Fall, in dem der ssh aus github gelöscht wurde, können Sie ihn wieder hinzufügen. Verwenden Sie pbcopy < ~/.ssh/id_rsa.pub
, Um den SSH-Schlüssel zu kopieren, und wechseln Sie dann zu Ihrer Github-SSH-Einstellung, und fügen Sie sie hinzu.
Ich werde empfehlen, immer ssh zu verwenden. Bei den meisten Teams, mit denen ich zusammengearbeitet habe, können Sie nur mit ssh auf das Repo zugreifen (das größtenteils privat ist). Für einen Anfänger mag es schwieriger erscheinen, aber später werden Sie es einfacher und sicherer finden.
Ein alternatives Problem kann Ihre Internetverbindung sein. Natürlich vielleicht, aber ich brauchte ein paar Minuten, um herauszufinden, dass mein WLAN ausgefallen ist :)
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, über das auf die Ressourcen Ihrer Organisation zugegriffen wird.
Seltsamerweise erhielt ich diesen Fehler nur in einem meiner vielen Repos.
Mein Problem war nach der Installation des neuen GitHub Desktop für Windows, wo der vorherige alte GitHub für Win die Schlüssel in ~/.ssh/github_rsa
und ~/.ssh/github_rsa.pub
aufbewahrte, während der neue GitHub für Win es in ~/.ssh/id_rsa
erwartet, sodass die Lösung lediglich die vorhandenen privaten und öffentlichen Schlüssel umbenannte:
~/.ssh/github_rsa -> ~/.ssh/id_rsa
~/.ssh/github_rsa.pub -> ~/.ssh/id_rsa.pub
Danach habe ich wieder ohne Probleme auf das Repo zugreifen können.
Ich benutze Ubuntu
nachdem ich viele Antworten gelesen habe, kann keine von ihnen das Problem lösen, auch wenn ich meinem Git-Konto bereits einen SSH-Schlüssel hinzugefügt habe, und versuche, ihn mit ssh -T [email protected]
und der Angabe Welcome <my username>
zu testen Ich habe keine Zugriffsrechte. Dann fand ich den Grund:
Wenn Sie kein root
Benutzer sind, müssen Sie normalerweise für jeden git-Befehl Sudo
ausführen.
beim Ausführen von Sudo git clone <SSH....>
(zum Beispiel). Es wird mit der Berechtigung root
ausgeführt, aber wenn ich den SSH-Schlüssel erstelle, starte ich ihn als normaler Benutzer und speichere den Schlüssel unter ~/.ssh/id_rsa
. Es wird der absolute Pfad /home/username/.ssh/id_rsa
aufgelöst. Und wenn Sudo git clone ...
ausgeführt wird, wird nach dem SSH-Schlüssel in /root/.ssh/id_rsa
gesucht.
Warum kann ich mir da sicher sein? Um zu sehen, wo git nach deinem 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.
Also die LÖSUNG, die ich vorschlage, ist:
Erstellen Sie Ihren SSH-Schlüssel neu (befolgen Sie diese Anweisung ), ABER führen Sie Sudo su
im allerersten Schritt aus, dann sollte es Ihnen gut gehen.
Wie bei anderen Antworten war https
anstelle von ssh
die 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 in HTTPS mit dieser Befehlszeile 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
Ich habe diesen Fehler beim Hochladen des Projekts in gitlab festgestellt. Ich habe nicht von Git geklont, sondern ein Projekt hochgeladen. Um Ihren Code an gitlab zu senden, haben Sie zwei Möglichkeiten, entweder ssh oder https zu verwenden. 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 folgenden Code 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 hinzufügen Ihren öffentlichen Schlüssel zu Ihrem Konto eingeben, damit wir schließlich Push ausführen können.
Verwenden Sie in Ihrem Projektverzeichnis (Directory) den folgenden Befehl
git init
Es verwandelt das aktuelle Verzeichnis in ein Git-Repository. Dies fügt dem aktuellen Verzeichnis ein .git-Unterverzeichnis hinzu und ermöglicht es, Revisionen des Projekts aufzuzeichnen.
Push Using https path
git Push --set-upstream https://gitlab.com/Account_User_Name/Your_Project_Name.git master
Push Using ssh path
git Push --set-upstream [email protected]:Account_User_Name/Your_project_Name.git master
- set-upstream: teilt git den Pfad zu Origin mit. Wenn Git zuvor auf Ihren aktuellen Zweig gepusht hat, merkt es sich, wo Origin ist
master: Dies ist der Name des Zweigs, zu dem ich beim Initialisieren einen Push ausführen möchte
Das Hinzufügen des SSH-Schlüssels hat bei mir funktioniert. Sie können einen SSH-Schlüssel mit dem Befehl ssh-keygen auf einem Mac erstellen. Das Menü Schlüssel bereitstellen sollte unter YourRepository> Einstellungen angezeigt werden. Vergessen Sie nicht, die Option Schreibzugriff zulassen zu aktivieren.
verwenden Sie Ihren https-Ursprung anstelle von ssh url
beispiel:
git remote add Origin https://gitlab.com/user/folder.git
Ich hatte dieses Problem und stelle fest, dass mein System eine falsche DNS-Adresse hat. Ü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.
Github verwendet jetzt ein URL-Schema
git remote set-url Origin https://github.com/username/repository.git