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://foo@github.com/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://foo@github.com/foo/foo-private.git/info/refs

fatal: HTTP request failed

Was mache ich falsch?

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 )


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 username@github.com/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


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

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?


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


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!


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(-)

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.


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.


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.


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!


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.


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.



0

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


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 git@github.com:account/someproject.git

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.


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.


0

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

git config --system http.sslverify false


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.


-1

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

git config --system http.sslverify false


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


-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 :)


-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?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.