Github: kesalahan mengkloning repositori pribadi saya

155

Saya mencoba mengkloning proyek GitHub saya menggunakan https-URL, tetapi gagal dengan kesalahan:

$ 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

Apa yang saya lakukan salah?

Mot
sumber

Jawaban:

289

Saya telah melihat ini di Windows, dengan msysgit 1.7.2.3. Anda harus memperbaiki path ke bin / curl-ca-bundle.crt . Saya harus menentukan jalur absolut, menggunakan garis miring:

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

atau - tidak benar-benar direkomendasikan - Anda dapat memilih untuk menonaktifkan pemeriksaan SSL sepenuhnya dengan menjalankan:

git config --sistem http.sslverify false

Untuk kedua kasus, ini akan menghasilkan perubahan pada file [git-install-dir] / etc / gitconfig, yang dapat diedit secara langsung juga.

(Solusi asli ditemukan di http://github.com/blog/642-smart-http-support )

mstrap
sumber
1
Dalam kasus saya, saya perlu menggunakan pembatas direktori untuk windows, maksud saya, saya harus menggunakan "\" (windows) daripada "/" (unix) untuk memisahkan direktori di path.
Victor
Seperti tulisan asli yang ditulis di bawah ini berfungsi untuk saya. Cobalah di repositori publik: $ git clone github.com/schacon/grack.git Untuk repo pribadi, atau untuk memiliki akses push pada repositori Anda, Anda dapat mengkloning dengan cara ini: $ git clone [email protected]/username/project.git Terima kasih :)
J4cK
13
Untuk referensi di masa mendatang, jalan tersebut tampaknya telah berubah bagi saya menjadi "C: \ Program Files (x86) \ Git \ mingw32 \ ssl \ certs \ ca-bundle.crt"
Ben
3
Path di mesin 64 bit saya adalah "C: \ Program Files \ Git \ mingw64 \ ssl \ certs \ ca-bundle.crt"
Kamaraju Kusumanchi
3
Di mesin 64 bit saya, git config --global http.sslcainfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"berhasil, tidak dapat mengatakan mengapa sistem global gagal.
semako
76

Saya memecahkan masalah menginstal Git dari: https://git-for-windows.github.io/ Temukan path file cert:

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

Konfigurasikan jalur Git:

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

Coba lagi

rogertoday
sumber
13
Saya punya error: could not lock config file C:\Program Files\Git\mingw64/etc/gitconfig: Permission denied. Berlari "C:\Program Files\Git\git-bash.exe"sebagai administrator dan coba lagi dan berhasil. Terima kasih!
AXO
Penjelasan
2
Saya baru saja menginstal Git untuk Windows 2.13.2 dan mengalami masalah ini mencoba untuk mendorong ke remote. Saya menemukan file cert di lokasi yang sama:C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt
Simon Tewsi
1
ini bekerja untuk saya, saya hanya menginstal Git menggunakan tautan yang Anda bagikan dan yang menyelesaikannya untuk saya, Terima kasih
Sunny Okoro Awa
Saya telah menginstal GIT pada direktori tertentu selama waktu instalasi, maka saya harus menentukan jalur MINGW64 yang benar sesuai dengan instalasi itu
gargkshitiz
21

Jika Anda menggunakan MSYS2 ...

Cukup instal paket sertifikat dengan perintah berikut:

32 bit

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

64 bit

pacman -S mingw-w64-x86_64-ca-certificates ca-certificates
CoolOppo
sumber
1
Tambah satu. Terima kasih. Jangan ingat harus melakukan msys2 32bit ini, tetapi kondisinya mungkin berbeda.
bvj
1
Terima kasih, saya mengkonfirmasi ini adalah hal yang harus dilakukan dengan menggunakan msys2 64 bit :-D
FabienRohrer
1
Mungkin terjadi file /usr/ssl/certs/ca-bundle.crt kosong, cukup instal ulang ca-sertifikat lagi
Daniel YC Lin
Bukan untuk Windows: $ pacman -S mingw-w64-x86_64-ca-sertifikat ca-sertifikat bash: pacman: perintah tidak ditemukan
belgoros
@Javix Itu sebabnya ia mengatakan "Jika Anda menggunakan MSYS2". Perintah pacman tidak tersedia secara default di Windows, tetapi tersedia jika Anda menginstal MSYS2.
CoolOppo
12

Jika Anda menggunakan Cygwin, Anda dapat menginstal paket ca-sertifikat dengan apt-cyg :

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

Bagaimana cara saya menginstal paket cygwin dari baris perintah?

Jiangwei Yu
sumber
1
Sial. Saya mencari begitu lama. Ini berhasil juga di mac. Terima kasih sudah berbagi.
Phlow
1
Pada Cygwin itu berhasil untuk sayagit config --system http.sslcainfo /usr/ssl/certs/ca-bundle.crt
ATorras
9
git config --global http.sslverify "false" 

Akan menyelesaikan masalah. Setelah itu muncul jendela Pop-up untuk memasukkan nama pengguna dan kata sandi Anda

Abu Bakar
sumber
5
Anda mungkin ingin menyebutkan konsekuensi keamanan dari ini. Ini sepertinya ide yang buruk, terutama secara global.
C. Helling
Bekerja pada HPC untuk saya
mmann1123
6

ASK: Saya mendapatkan kesalahan ini ketika saya menginstal pembaruan ke installer windows Git. Apa yang terjadi adalah bahwa saya tidak menginstalnya dengan hak administrator, jadi Git diinstal pada "C: \ Users \ my_name \ AppData \ Local \ Programs" alih-alih "C: \ program Files". menginstal ulang Git sebagai administrator diizinkan memasukkannya ke dalam C: \ program Files dan semuanya berjalan dengan baik lagi!

Louis BAYLE
sumber
Untuk apa nilainya, menghapus dan menginstal ulang GitHub Desktop memperbaikinya untuk saya juga, meskipun masih menggunakan folder AppData.
Ben Collier
5

Ini bekerja untuk saya (saya menggunakan Manjaro linux). Saya menjalankan cmd untuk melihat ca-sertifikat:

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

Tetapi sebenarnya saya menemukan sertifikat di jalur:

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

Kemudian tambahkan config ke ~ / .gitconfig (jika tidak ada, buatlah):

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

Berhasil!

.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
sumber
1
Bekerja untuk saya di archlinux!
lucasem
4

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

Ini bekerja. Anda tidak harus memberikan jalan penuh.

KannarKK
sumber
3

Saya menghadapi ini sementara git pull. Untuk saya edit file konfigurasi global git yang memperbaiki masalah.

Goto folder rumah Anda dan buka file .gitconfig. Biasanya C: \ Users \ .gitconfig

Jika file tidak ada, buatlah

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

Di sana Anda harus memberikan jalur instalasi git Anda sendiri. Saya telah menggunakan versi portable git di sini.

Kemudian git clone / pull itu akan bekerja.

arulraj.net
sumber
1
Anda perlu menggunakan karakter escape ganda:E:\\systools...
HappyCactus
TETAPI, pastikan BUKAN untuk membungkus jalur dalam tanda kutip. super-kontra-intuitif. "C:\\folder\\file"itu buruk, C:\\folder\\fileitu baik. Aku ingin waktuku kembali.
increddibelly
2

Jika Anda menggunakan shell perintah Git yang menginstal dengan aplikasi GitHub untuk Windows maka ini dan berbagai masalah lainnya dapat muncul setelah pembaruan. Mulai saja aplikasi windows Git Hub dan matikan kembali. Shell kemudian akan bekerja OK lagi. Masalahnya adalah bahwa pembaruan tidak selesai sampai aplikasi windows dijalankan. Hanya menggunakan shell tidak akan memicu pembaruan untuk menyelesaikan.

Paul D
sumber
2

Saya telah melihat ini di Github saya untuk Windows.

Saya sarankan mencopot pemasangan Github untuk Windows dan menginstalnya lagi.

Sebelum ini, saya mencoba beberapa cara tanpa hasil, tetapi solusi ini berhasil bagi saya!

Alisa
sumber
1

Di Windows menggunakan msysgit, saya mengalami kesalahan ini dan penyebabnya adalah penambahan sertifikat proksi perusahaan kami.

Jika Anda mengedit curl-ca-bundle.crt, Anda harus memastikan tentang garis keturunan Anda. Dalam kasus bundel-ikal Anda harus menggunakan lineendings Linux-Style.

> 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

Anda dapat menggunakan notepad ++ untuk mengonversi garis akhir menjadi Linux (linefeed).

Thomas
sumber
1

Di samping catatan, masalah ini dapat terjadi di Windows jika pengguna yang mencoba menggunakan git berbeda dari pengguna yang menginstalnya. Kesalahan dapat menunjukkan bahwa git tidak dapat mengakses file sertifikat. Menginstal git sebagai administrator dan menggunakan jawaban @ rogertoday menyelesaikan masalah saya.

Maghoumi
sumber
1

Saya menemukan solusi yang baik untuk menambah / memperbarui sertifikat CA di RHEL / CentOS 6 yang merupakan masalah utama yang dilaporkan.

Karena mereka menjadi distro yang ketinggalan jaman, otoritas cacert dalam sistem itu belum diperbarui hingga menjalankan perintah sudo yum update.

Tidak menyadari masalah ini hingga mode GIT_CURL_VERBOSE menunjukkan masalah jalur cacert.

SK Venkat
sumber
0

Di Linux, saya mengalami kesalahan ini dan memperbaikinya dengan menjalankan sudo update-ca-certificates.

pengguna5002062
sumber
Anda harus menjelaskan apa yang dilakukan perintah ini dan mengapa ini membantu. Memposting perintah mentah tanpa penjelasan bukanlah ide yang baik, khususnya jika Anda memerlukan akses root.
Kacang
0

Bagi saya yang memecahkan masalahnya adalah ketika pada kotak windows 10 saya, saya mencoba menghapus instalan git dan menginstal ulang, menggunakan Windows Cmd sebagai default, bukan Git Bash

Buka CMD dan jalankan yang berikut ini

//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
sumber
0

Jika ada orang lain yang menghadapi masalah ini di Git untuk Windows dan tidak memiliki curl-ca-bundle.crttempat di sistem Anda bahkan setelah menginstal ulang, ini adalah proses yang saya ikuti:

  1. Unduh versi terbaru curl di sini: curl download mirror
  2. Ekstrak dan navigasikan ke curl-**.**.*/libdalam baris perintah
  3. Lari ./mk-ca-bundle.prl
  4. Salin ca-bundle.crtke git path Anda dan perbarui konfigurasi seperti yang tercantum dalam jawaban lain

Berteriak ke intisari ini untuk membantu saya menyelesaikan instalasi.

tordal
sumber
0

Saya telah memecahkan masalah ini pada Windows Server 2016 dengan menginstalnya kembali dan dengan memilih "pustaka Saluran Aman Windows asli" pada langkah pemasangan "Memilih backend HTTPS transport".

Thibault Loison
sumber
0

Solusi yang bekerja untuk saya di windows 64bits adalah sebagai berikut

git config --sistem http.sslverify false

Jorge Santos Neill
sumber
0

Dalam kasus win10 saya, saya memiliki dua versi dari.gitconfig

  • yang pertama adalah masuk C:\Program Files\Git\etc
  • yang kedua adalah C:\Users\<user>

Perintah

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

memang membuat perubahan C:\Program Files\Git\etc, tapi git entah bagaimana menggunakan config diC:\Users\<user>

Jadi dengan notepad saya mengubah yang kedua .gitconfigdan git akhirnya mengambil konfigurasi yang benar dan mulai berfungsi.

d0wn
sumber
-1

Saya bisa menyelesaikan masalah ini dengan perintah berikut.

git config --sistem http.sslverify false

Pradeep Kumar C
sumber
Jawaban ini akan lebih baik jika membahas konsekuensi keamanan dari pengaturan ini dan menyediakan cara lain untuk menyelesaikan masalah. Padahal, jawaban yang diterima saat ini melakukan ini dan banyak lagi ...
chwarr
-1

Saya menerima kesalahan ini setelah memindahkan git melintasi hard drive. Menghapus dan menginstal ulang di lokasi baru memperbaiki hal-hal

Shane J
sumber
-1

Di git untuk Windows Anda juga dapat menginstal ulang dan memilih metode validasi sertifikat asli Windows (OpenSSL adalah default). Ini akan melewati verifikasi OpenSSL dan alih-alih menggunakan yang asli Windows, yang tidak memerlukan pemeliharaan alat dan sertifikat terpisah (OpenSSL).

Bekerja dengan sempurna untuk saya :)

Reijin
sumber
-2

Perintah berikut

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

berfungsi untuk kebutuhan saya, tetapi saya menganggap Anda menginginkan lebih dari akses hanya baca, bukan?

Andrew Grimm
sumber