Github: Fehler beim Klonen meines privaten Repositorys

155

Ich versuche, mein GitHub-Projekt mithilfe der https-URL zu klonen, aber es schlägt mit einem Fehler fehl:

$ git clone https://[email protected]/foo/foo-private.git
Cloning into foo-private...
Password:
error: error setting certificate verify locations:
  CAfile: /bin/curl-ca-bundle.crt
  CApath: none
 while accessing https://[email protected]/foo/foo-private.git/info/refs

fatal: HTTP request failed

Was mache ich falsch?

Mot
quelle

Antworten:

289

Ich habe dies unter Windows mit msysgit 1.7.2.3 gesehen. Sie müssen den Pfad zu bin / curl-ca-bundle.crt festlegen . Ich musste den absoluten Pfad mit Schrägstrichen angeben:

git config --system http.sslcainfo "C: \ Programme (x86) \ git \ bin \ curl-ca-bundle.crt"

oder - nicht wirklich empfohlen - Sie können SSL-Prüfungen vollständig ausschalten, indem Sie Folgendes ausführen:

git config --system http.sslverify false

In beiden Fällen führt dies zu Änderungen an der Datei [git-install-dir] / etc / gitconfig, die auch direkt bearbeitet werden können.

(Originallösungen finden Sie unter http://github.com/blog/642-smart-http-support )

mstrap
quelle
1
In meinem Fall musste ich das Verzeichnistrennzeichen für Windows verwenden, ich meine, ich muss das "\" (Windows) anstelle von "/" (Unix) zum Trennen von Verzeichnissen im Pfad verwenden.
Victor
Da das Schreiben des ursprünglichen Beitrags unten für mich funktioniert, probieren Sie es in einem öffentlichen Repository aus: $ git clone github.com/schacon/grack.git Für private Repos oder um Push-Zugriff auf Ihr Repository zu erhalten, können Sie folgendermaßen klonen: $ git clone [email protected]/username/project.git Danke :)
J4cK
13
Für zukünftige Referenzen scheint sich der Pfad für mich zu "C: \ Programme (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt" geändert zu haben
Ben
3
Der Pfad auf meinem 64-Bit-Computer lautet "C: \ Programme \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi
3
Auf meinem 64-Bit-Computer, der git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"funktioniert hat, kann ich nicht sagen, warum global, während das System ausgefallen ist.
Semako
76

Ich habe das Problem bei der Installation des Git von folgender Adresse gelöst: https://git-for-windows.github.io/ Suchen Sie den Pfad der Zertifizierungsdatei:

D: \ Programme \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt

Konfigurieren Sie den Git-Pfad:

git config --system http.sslcainfo "D: \ Programme \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"

Versuch es noch einmal

Rogertoday
quelle
13
Ich habe error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Lief "C:\Program Files\Git\git-bash.exe"als Administrator und versuchte es erneut und es funktionierte. Vielen Dank!
AXO
Bessere Erklärung
Kasim Rangwala
2
Ich habe gerade Git für Windows 2.13.2 installiert und bin auf dieses Problem gestoßen, als ich versucht habe, auf die Fernbedienung zu pushen. Ich fand die Zertifizierungsdatei an einem ähnlichen Ort:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi
1
Das hat bei mir funktioniert, ich habe den Git nur über den Link installiert, den du geteilt hast, und das hat es für mich gelöst. Danke
Sunny Okoro Awa
Ich hatte GIT während der Installationszeit in einem bestimmten Verzeichnis installiert, daher musste ich den richtigen MINGW64-Pfad gemäß dieser Installation
angeben
21

Wenn Sie MSYS2 verwenden ...

Installieren Sie einfach die Zertifikatspakete mit den folgenden Befehlen:

32 Bit

pacman -S mingw-w64-i686-ca-certificates ca-certificates

64 Bit

pacman -S mingw-w64-x86_64-ca-certificates ca-certificates
CoolOppo
quelle
1
Plus eins. Vielen Dank. Erinnern Sie sich nicht daran, diese msys2 32bit ausführen zu müssen, aber die Umstände können unterschiedlich sein.
bvj
1
Vielen Dank, ich bestätige, dass dies mit msys2 64 Bit zu tun ist :-D
FabienRohrer
1
Es kann vorkommen, dass die Datei /usr/ssl/certs/ca-bundle.crt leer ist. Installieren Sie die Ca-Zertifikate einfach erneut
Daniel YC Lin
Nicht für Windows: $ pacman -S mingw-w64-x86_64-ca-Zertifikate ca-Zertifikate bash: pacman: Befehl nicht gefunden
belgoros
@Javix Deshalb heißt es "Wenn Sie MSYS2 verwenden". Der Befehl pacman ist unter Windows standardmäßig nicht verfügbar, aber verfügbar, wenn Sie MSYS2 installiert haben.
CoolOppo
12

Wenn Sie Cygwin verwendet haben, können Sie das Paket ca-certificates mit apt-cyg installieren :

wget rawgit.com/transcode-open/apt-cyg/master/apt-cyg
install apt-cyg /usr/local/bin
apt-cyg install ca-certificates

Wie installiere ich ein Cygwin-Paket über die Befehlszeile?

Jiangwei Yu
quelle
1
Verdammt. Ich habe so lange gesucht. Dies funktionierte auch auf dem Mac. Ich danke Ihnen für das Teilen.
Phlow
1
Auf Cygwin hat es für mich git config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
funktioniert
9
git config --global http.sslverify "false" 

Wird das Problem lösen. Danach erscheint ein Popup-Fenster, in dem Sie Ihren Benutzernamen und Ihr Passwort eingeben können

Abu Bakr
quelle
5
Vielleicht möchten Sie die Sicherheitsauswirkungen erwähnen. Dies scheint eine schreckliche Idee zu sein, insbesondere weltweit.
C. Helling
Arbeitete an HPC für mich
mmann1123
6

Gelöst: Ich habe diesen Fehler erhalten, als ich ein Update für das Git Windows-Installationsprogramm installiert habe. Was passiert ist, ist, dass ich es nicht mit Administratorrechten installiert habe, also wurde Git unter "C: \ Benutzer \ mein_name \ AppData \ Local \ Programme" anstelle von "C: \ Programme" installiert. Neuinstallation von Git als Administrator erlaubt, es in C: \ Programme zu speichern und alles ging wieder gut!

Louis BAYLE
quelle
Die Deinstallation und Neuinstallation von GitHub Desktop hat dies auch für mich behoben, obwohl immer noch der AppData-Ordner verwendet wird.
Ben Collier
5

Das hat bei mir funktioniert (ich benutze Manjaro Linux). Ich führe das cmd aus, um ca-Zertifikate anzuzeigen:

$ curl-config --ca
**/etc/ssl/certs/ca-certificates.crt**

Aber eigentlich habe ich die Zertifikate am Pfad gefunden:

**/etc/ca-certificates/extracted/ca-bundle.trust.crt**

Fügen Sie dann die Konfiguration zu ~ / .gitconfig hinzu (falls nicht vorhanden, erstellen Sie sie):

**vim ~/.gitconfig**
[http]
    sslVerify = true
    sslCAinfo = /etc/ca-certificates/extracted/ca-bundle.trust.crt

[user]
    email = <email of github account>
    name = <username of github account>

Es klappt!

.rbenv]$ git pull

remote: Counting objects: 70, done.
remote: Compressing objects: 100% (47/47), done.
remote: Total 70 (delta 39), reused 12 (delta 12), pack-reused 6
Unpacking objects: 100% (70/70), done.
From https://github.com/sstephenson/rbenv
   c43928a..efb187f  master     -> origin/master
 + 37ec781...7e57b52 user-gems  -> origin/user-gems  (forced update)
Updating c43928a..efb187f
Fast-forward
 libexec/rbenv-init         |  4 ++--
 libexec/rbenv-version-file |  1 +
 test/init.bats             |  2 +-
 test/test_helper.bash      | 25 +++++++++++++++----------
 4 files changed, 19 insertions(+), 13 deletions(-)
Duy Nguyen
quelle
1
Arbeitete für mich auf Archlinux!
Lucasem
4

git config --system http.sslcainfo /bin/curl-ca-bundle.crt

Das funktioniert. Sie müssen nicht den vollen Weg angeben.

KannarKK
quelle
3

Ich habe mich dem gestellt, während ich gezogen habe. Für meine bearbeitete die globale Git-Konfigurationsdatei das Problem behoben.

Gehen Sie zu Ihrem Home-Ordner und öffnen Sie die .gitconfig-Datei. Normalerweise C: \ Users \ .gitconfig

Wenn die Datei nicht vorhanden ist, erstellen Sie sie

[http]
sslcainfo = E: \ systools \ git-1.8.5.2 \ bin \ curl-ca-bundle.crt

Dort müssen Sie Ihren eigenen Git-Installationspfad angeben. Ich habe hier eine tragbare Version von Git verwendet.

Dann git klonen / ziehen wird es funktionieren.

arulraj.net
quelle
1
Sie müssen doppelte E:\\systools...
Fluchtzeichen verwenden
ABER stellen Sie sicher, dass Sie den Pfad NICHT in Anführungszeichen setzen. super kontraintuitiv. "C:\\folder\\file"ist schlecht, C:\\folder\\fileist gut. Ich will meine Stunde zurück.
Unglaublich
2

Wenn Sie die Git-Befehlsshell verwenden, die mit der GitHub für Windows-App installiert wird, können dieses und verschiedene andere Probleme nach einem Update auftreten. Starten Sie einfach die Git Hub Windows App und fahren Sie sie erneut herunter. Die Shell funktioniert dann wieder in Ordnung. Das Problem ist, dass das Update erst abgeschlossen wird, wenn die Windows-Anwendung ausgeführt wird. Wenn Sie nur die Shell verwenden, wird das Update nicht abgeschlossen.

Paul D.
quelle
2

Ich habe dies auf meinem Github für Windows gesehen.

Ich empfehle, Github für Windows zu deinstallieren und erneut zu installieren.

Vorher habe ich verschiedene Methoden ohne Erfolg ausprobiert, aber diese Lösung hat bei mir funktioniert!

Alisa
quelle
1

Unter Windows mit msysgit hatte ich diesen Fehler und die Ursache waren meine Ergänzungen unserer Unternehmens-Proxy-Zertifikate.

Wenn Sie Ihre curl-ca-bundle.crt bearbeiten, müssen Sie sich über Ihre Lineendings sicher sein. Im Falle des curl-ca-Bundles müssen Sie Linux-Style-Lineendings verwenden.

> git ls-remote --tags --heads https://github.com/oblador/angular-scroll.git
fatal: unable to access 'https://github.com/oblador/angular-scroll.git/': error setting certificate verify locations:
  CAfile: C:\Program Files (x86)\Git\bin\curl-ca-bundle.crt
  CApath: none

Sie können Notepad ++ verwenden, um die Lineendings in Linux (Linefeed) zu konvertieren.

Thomas
quelle
1

Nebenbei bemerkt kann dieses Problem in Windows auftreten, wenn sich der Benutzer, der versucht, git zu verwenden, von dem Benutzer unterscheidet, der es installiert hat. Der Fehler kann darauf hinweisen, dass git nicht auf die Zertifikatdateien zugreifen kann. Die Installation von git als Administrator und die Verwendung der Antwort von @ rogertoday haben mein Problem behoben.

Maghoumi
quelle
1

Ich habe eine gute Lösung zum Hinzufügen / Aktualisieren der CA-Zertifikate unter RHEL / CentOS 6 gefunden. Dies ist die Hauptursache für das gemeldete Problem.

Da sie zu veralteten Distributionen werden, wurden die Cacert-Berechtigungen in diesem System erst aktualisiert, nachdem der Befehl ausgeführt wurde sudo yum update.

Das Problem wurde erst erkannt, als im Modus GIT_CURL_VERBOSE das Problem mit dem Cacert-Pfad angezeigt wird.

SK Venkat
quelle
0

Unter Linux hatte ich diesen Fehler und habe ihn durch Ausführen behoben sudo update-ca-certificates.

user5002062
quelle
Sie sollten erklären, was dieser Befehl bewirkt und warum dies hilft. Das Posten von Raw-Befehlen ohne Erklärung ist keine gute Idee, insbesondere wenn Sie Root-Zugriff benötigen.
Erdnuss
0

Für mich war das Problem gelöst, als ich auf meiner Windows 10-Box versuchte, git zu deinstallieren und neu zu installieren, wobei Windows Cmd als Standard verwendet wurde, nicht Git Bash

Öffnen Sie CMD und führen Sie Folgendes aus

//Once installed try to resintall the bin folder 
git config --system http.sslcainfo \bin/curl-ca-bundle.crt

//disable ssl verification
git config --global http.sslverify "false"

//Then try to clone repo again
git clone [email protected]:account/someproject.git
wushueagle
quelle
0

Wenn jemand anderes in Git für Windows mit diesem Problem konfrontiert ist und curl-ca-bundle.crtauch nach der Neuinstallation keine Verbindung zu Ihrem System hat, habe ich folgende Schritte ausgeführt:

  1. Laden Sie hier die neueste Version von Curl herunter : Curl Download Mirror
  2. Extrahieren und navigieren Sie curl-**.**.*/libin der Befehlszeile zu
  3. Lauf ./mk-ca-bundle.prl
  4. Kopieren Sie ca-bundle.crtin Ihren Git-Pfad und aktualisieren Sie die Konfiguration wie in anderen Antworten aufgeführt

Wenden Sie sich an diesen Kern, um mir bei der Installation zu helfen.

tordal
quelle
0

Ich habe dieses Problem auf einem Windows Server 2016 gelöst, indem ich es neu installiert und im Installationsschritt "Auswählen des HTTPS-Transport-Backends" die Option "native Windows Secure Channel-Bibliothek" ausgewählt habe.

Thibault Loison
quelle
0

Die Lösung, die für mich in Windows 64-Bit funktioniert, ist die folgende

git config --system http.sslverify false

Jorge Santos Neill
quelle
0

In meinem win10 Fall habe ich zwei Versionen von.gitconfig

  • der erste ist in C:\Program Files\Git\etc
  • der zweite ist in C:\Users\<user>

Der Befehl

git config --system http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"

nimmt zwar Änderungen vor C:\Program Files\Git\etc, aber git verwendet irgendwie config inC:\Users\<user>

Also habe ich mit Notepad den zweiten geändert .gitconfigund Git hat endlich die richtige Konfiguration genommen und sich an die Arbeit gemacht.

d0wn
quelle
-1

Ich konnte dieses Problem mit dem folgenden Befehl lösen.

git config --system http.sslverify false

Pradeep Kumar C.
quelle
Diese Antwort wäre besser, wenn die Sicherheitsauswirkungen dieser Einstellung erörtert und andere Möglichkeiten zur Lösung des Problems bereitgestellt würden. Die derzeit akzeptierte Antwort macht dies und mehr ...
Chwarr
-1

Ich habe diesen Fehler erhalten, nachdem ich Git über Festplatten verschoben habe. Das Löschen und Neuinstallieren am neuen Speicherort hat Probleme behoben

Shane J.
quelle
-1

Unter Git für Windows können Sie auch die native Windows-Zertifikatsüberprüfungsmethode neu installieren und auswählen (OpenSSL ist Standard). Dadurch wird die OpenSSL-Überprüfung übersprungen und stattdessen die native Windows-Überprüfung verwendet, für die kein separates Tool (OpenSSL) und keine Zertifikate erforderlich sind.

Hat perfekt für mich funktioniert :)

reijin
quelle
-2

Der folgende Befehl

git clone git://github.com/username/projectname.git

hat für meine Bedürfnisse gearbeitet, aber ich gehe davon aus, dass Sie mehr als nur Lesezugriff wünschen, oder?

Andrew Grimm
quelle