git mengembalikan kesalahan http 407 dari proxy setelah CONNECT

95

Saya mengalami masalah saat menghubungkan ke github dari PC saya, menggunakan git. Sistem Menang 7.

Saya memiliki koneksi melalui proxy, jadi saya menentukannya di file konfigurasi git (baik di folder git umum, dan di folder repo git). Untuk melakukan ini, saya memasukkan baris berikutnya ke git bush saya:

$ git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>

Cara kerjanya pada program lain (ex: maven) terlihat seperti ini:

<username> - my login to our corp system
<userpsw> -my password to corporat system
<proxy> - 10.65.64.77
<port> - 3128

Tetapi ketika saya mencoba untuk mendorong atau mengkloning repo saya, saya menerima

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

Saya sudah mencoba memasukkan bukan hanya nama pengguna saya tetapi domain \ nama pengguna, mengubah kata sandi saya jika ada masalah dengan tabel bahasa kode. Dan saya bahkan memasukkan kata sandi yang salah. Kesalahan tetap sama.

Ketika saya memasukkan '10 .65.64.177.com 'dan mencoba mendorong repo, saya menerima:

fatal: unable to access '<repo github link>': Failed connect to github.com:3128; No error

Hanya tidak tahu harus mencoba apa.

Olga Chernyavskaya
sumber
Duplikat stackoverflow.com/questions/8561671 ? Lihat jawaban saya di sana tentang https proxy.
thinkOfaNumber
1
Saya mendapatkan masalah yang sama setelah saya memperbarui kata sandi windows saya di lingkungan AD. Ternyata saya baru saja me-restart server proxy saya (cntlm).
Aaron C

Jawaban:

85

Apa yang berhasil bagi saya adalah sesuatu yang mirip dengan apa yang diusulkan rohitmohta; di command prompt DOS biasa (bukan di git bash):

pertama

git config --global http.proxy http://username:password@proxiURL:proxiPort

dan dalam beberapa kasus juga

git config --global https.proxy http://username:password@proxiURL:proxiPort

kemudian

git config --global http.sslVerify false

(Saya mengonfirmasi bahwa ini perlu: jika disetel ke true, mendapatkan kesalahan "masalah sertifikat SSL: tidak bisa mendapatkan sertifikat penerbit lokal")

dalam kasus saya, tidak perlu mendefinisikan variabel all_proxy

dan akhirnya

git clone https://github.com/someUser/someRepo.git
Vincent F.
sumber
1
Saya tidak memerlukan "git config --global http.sslVerify false", tetapi ini mungkin tergantung pada konfigurasi proxy.
anre
1
Jawaban ini berhasil, dan harus ditandai sebagai benar.
Nadeem Iqbal
Diperlukan untuk melakukannya di git bash bukan DOS untuk saya. Saya perhatikan DOS tidak melakukan apa-apa! yaitu. periksa dengan melakukan: git config --global -l
theQuestionMan
Apa git config --global http.proxy http://username:password@proxiURL:proxiPortperbedaan jawaban dari pertanyaan git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>selain yang kurang benar, karena seseorang perlu menentukan host proxy , bukan URL ?
Michel Jung
Bekerja seperti pesona
Polycarp Kavoo
38

Aku harus menyiapkan semua 4 hal di .gitconfigdengan:

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port

Baru setelah itu kloning berhasil.

Miroslav Mocek
sumber
Saya mencoba semua opsi yang disebutkan di sini dan tetap saja tidak berhasil untuk saya. :(
Xavier Geoffrey
Mengapa sih semua orang mengusulkan untuk menghindari verifikasi SSL ??? INI TIDAK AMAN dan dapat membahayakan sistem Anda!
flederwiesel
3
@flederwiesel Karena proxy perusahaan itu jahat, dan menyebabkan segala macam kebodohan - seperti harus menyimpan kredensial domain Anda dalam cleartext di setengah lusin tempat sehingga Anda benar-benar dapat mengakses sumber yang diproksikan. Dan memaksa penggunaan sertifikat dasar yang tidak aman dan dikeluarkan perusahaan - atau mengabaikan / mengabaikan verifikasi SSL sepenuhnya. Cukup menyedihkan.
ggranum
36

Perintah berikut diperlukan untuk memaksa git mengirimkan kredensial dan metode autentikasi ke proxy:

git config --global http.proxyAuthMethod 'basic'

Sumber: https://git-scm.com/docs/git-config#git-config-httpproxyAuthMethod

Marijus Ravickas
sumber
2
Inilah yang akhirnya berhasil bagi saya! setelah mengatur proxy di file konfigurasi.
Dhanesh KM
3
Ini juga bagian yang hilang untuk saya. Terima kasih. (Biasanya saya tidak bertemu dengan komentar 'saya juga', tetapi jawaban ini cukup jauh dan membutuhkan lebih banyak cinta).
ggranum
Inilah tepatnya yang hilang!
ivspenna
Ini akhirnya menjadi satu - satunya opsi konfigurasi git yang saya butuhkan, karena variabel lingkungan https_proxy saya disetel di / etc / environment.
Rakurai
36

Mungkin Anda sudah menggunakan setelan proxy sistem - dalam hal ini, hapus setelan semua proxy git akan berfungsi:

git config --global --unset http.proxy
git config --global --unset https.proxy
rekinyz
sumber
1
Ini setidaknya menjaga kesalahan agar tidak muncul dan menghasilkan prompt untuk nama pengguna / kata sandi. Tampaknya klien git terkadang salah menyetel proxy secara default. Saya mengalami kesalahan yang sama terjadi saat menggunakan SourceTree oleh Atlassian.
Kelly S. French
Ini memecahkan masalah bagi saya di Ubuntu 14.04 setelah banyak garukan kepala!
Tim Ebenezer
2
Ini juga menyelesaikannya untuk saya saat menggunakan SourceTree, terima kasih.
TomSW
Saya mendapatkan kesalahan ini ketika mencoba menginstal homebrew ... ini menyelesaikan masalah saya. Terima kasih.
joeCarpenter
Terima kasih, ini adalah satu-satunya hal yang berhasil bagi saya saat bekerja dari lokasi jauh melalui terowongan VPN.
Matt
18

Saya pernah menghadapi masalah serupa, di balik firewall perusahaan. Lakukan hal berikut, dan dapat mengkloning repositori menggunakan git shell dari sistem saya yang menjalankan Windows 7 SP1.

  1. Setel variabel lingkungan 'all_proxy' untuk pengguna Anda. Diperlukan oleh curl.

    export all_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  2. Setel variabel lingkungan 'https_proxy' untuk pengguna Anda. Diperlukan oleh curl.

    export https_proxy=http://DOMAIN\proxyuser:[email protected]:8080
    
  3. Saya tidak yakin apakah ini berdampak. Tapi saya melakukan ini dan berhasil:

    git config --global http.sslverify false
    
  4. Gunakan https: // untuk kloning

    git clone https://github.com/project/project.git
    

Catatan-1: Jangan gunakan http: //. Menggunakan itu dapat memberikan kesalahan di bawah ini. Ini dapat diselesaikan dengan menggunakan https: //.

 error: RPC failed; result=56, HTTP code = 301

Catatan-2: Hindari menggunakan @ dalam sandi Anda. Bisa menggunakan $ sekalipun.

rohitmohta
sumber
Anda dapat menggunakan https_proxy = DOMAIN \ "proxyuser: proxypwd" @ proxy.server.com: 8080 dengan tanda kutip ganda dan memiliki @kata sandi.
Vadorequest
1
Saya tahu ada trik menggunakan tanda kutip "di sekitar login:password. Tapi saya benar-benar mencoba dan mengabaikan tanda kutip, jadi @kata sandi mengacaukannya. Jika seseorang memiliki solusi, saya pikir itu layak untuk disebutkan.
Vadorequest
1
Saya telah mencoba semua perintah yang disarankan di atas tetapi setelah itu saya mulai menerima kode HTTP 407 dari proxy setelah CONNECT.
pengguna130934
1
Anda dapat menyandikan URL karakter khusus apa pun. Misalnya @ menjadi% 40. meyerweb.com/eric/tools/dencoder
Bryant
6

Saya memiliki masalah yang sama di lingkungan Windows.

Saya baru saja menyelesaikan dengan NTLM-APS (server proxy otentikasi Windows NT)

Konfigurasi proxy NTML Anda dan setel Git ke sana:

git config --global http.proxy http://<username>:<userpsw>@localhost:<port>
pinei
sumber
3

Memiliki kesalahan 407 dari Android Studio. Mencoba menambahkan proxy, tetapi tidak ada yang terjadi. Ternyata itu terkait dengan sertifikat perusahaan, jadi saya mengekspornya dari browser saya dan menambahkannya ke Git.

Ekspor Dari Browser Web

Opsi Internet> Konten> Sertifikat> Ekspor (Ikuti wizard, saya memilih format "Base 64 encoded X.509 (.CER))

Di Git Bash

git config --global http.sslCAInfo c:\Utilities\Certificates\my_certificate

Halaman berikut berguna https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

Untuk menambahkan proxy, seperti utas lain yang saya gunakan

git config --global http.proxy proxy.company.net:8080
git config --global https.proxy proxy.company.net:8080
beaumondo
sumber
1
Saya tidak akan menimpa keystore default "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"tetapi menambahkan sertifikat perusahaan Anda ke dalamnya (mungkin dalam file terpisah seperti yang dijelaskan di link).
jansohn
3

Saya menghadapi masalah yang sama, jadi pertama-tama saya memeriksa file npm saya apa yang telah saya tetapkan, saya memeriksanya dengan perintah ini: -

npm config get proxy

dan saya menemukan saya telah menetapkan proxy yang salah dan saya menetapkan proxy keinginan saya sebagai berikut:

npm config set proxy http://xxx.xxx.xxx.4:8080   
npm config set https-proxy http://xxx.xxx.xxx.4:8080

Setelah itu, saya berhasil

pengguna1989488
sumber
1
Apakah Anda yakin tentang perintah: "npm config ...", karena saya rasa seharusnya "git config ..."
Gaurav Lad
2

Kata sandi Anda sepertinya salah. Periksa kembali kredensial Anda.

neo china
sumber
1

Saya memiliki masalah yang sama di organisasi saya.

Setelah banyak upaya, saya sampai pada solusi berikut:

  1. Saya mendaftar ke administrator sistem untuk mengubah jenis otentikasi proxy dari Kerberos ke NTLM. Saya tidak yakin apakah itu wajib (saya adalah orang yang bodoh dalam hal ini), tetapi aplikasi saya disetujui.

  2. Setelah itu saya menambahkan pengaturan Git

    git config --global http.proxyauthmethod ntlm

Hanya setelah itu saya bisa mengkloning repositori saya

Кирилл Захаров
sumber
1

Saya juga mengalami masalah yang sama, dan mencoba menyelesaikannya dengan menyetel http.proxyAuthMethod secara eksplisit ke basic.

Setelah menjalankan pelacakan pcap antara server saya dan proxy, saya melihat bahwa permintaan "HTTP CONNECT" yang dikirim ke proxy selama git clone masih belum memiliki header "Proxy-Authorization" yang disetel ke dasar. Ini karena versi git saya "1.8.3.1" tidak mendukung http.proxyAuthMethod.

Setelah menginstal versi git terbaru (2.16.6), menggunakan paket rpm foud di sini " https://repo.ius.io/7/x86_64/packages/g/ ", menyetel http.proxyAuthMethod ke basic akhirnya berpengaruh pada git perilaku dan kemudian klon git saya berhasil.

saya harap ini membantu

marwaneL
sumber
0

Saya pikir Anda harus memfokuskan upaya Anda setelah Anda mencapai titik ini:

fatal: unable to access '<repo githup link>' Received HTTP code 407 from proxy after CONNECT

Ini berarti Anda belum mengautentikasi dengan benar dengan proxy tersebut. Dapatkah Anda memeriksa ulang apakah kata sandi yang Anda berikan pada langkah ini benar?

git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>
Slak
sumber
0

Masalah ini terjadi beberapa hari yang lalu dengan repositori Bitbucket saya. Saya dapat memperbaikinya dengan menyetel url jarak jauh ke http, bukan https.

Saya juga mencoba mengatur proxy https di baris perintah dan git config tetapi ini tidak berhasil.

$ git pull
fatal: unable to access 'https://[email protected]/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

Perhatikan bahwa kami menggunakan https:

$ git remote -v
origin  https://[email protected]/sacgf/x.git (fetch)
origin  https://[email protected]/sacgf/x.git (push)

Ganti url https dengan url http:

$ git remote set-url origin http://[email protected]/sacgf/x.git
$ git pull
Username for 'https://bitbucket.org': username
Password for 'https://[email protected]': 
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (42/42), done.
remote: Total 43 (delta 31), reused 0 (delta 0)
Unpacking objects: 100% (43/43), done.
From http://bitbucket.org/sacgf/x
   a41eb87..ead1a92  master     -> origin/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to ead1a920caf60dd11e4d1a021157d3b9854a9374.
d
Dave Lawrence
sumber
0

Saya mengalami kesalahan ini karena jaringan perusahaan saya menggunakan satu proxy saat berada di lokasi, dan proxy kedua (sama sekali berbeda) saat VPN dari luar. Saya pada awalnya dikonfigurasi untuk proxy lokal, menerima kesalahan, dan kemudian harus memperbarui konfigurasi saya untuk menggunakan proxy alternatif, off-prem, ketika bekerja di tempat lain.

Shawn
sumber
0

Saya memiliki masalah serupa dan saya menyelesaikannya dengan langkah-langkah di bawah ini:

** Tambahkan detail proxy di git **

git config --global http.sslVerify false
git config --global https.sslVerify false
git config --global http.proxy http://user:pass@yourproxy:port
git config --global https.proxy http://user:pass@yourproxy:port
Sairam Kukadala
sumber
0

Konfigurasi ini berfungsi di pengaturan saya:

[http]
    proxy = <your proxy>
[https] proxy = <your proxy>
[http]
    sslVerify = false
[https]
    sslVerify = false   
[credential]
    helper = wincred 
meol
sumber
0

Memiliki masalah yang sama saat menggunakan pohon sumber. Alasannya adalah Mungkin mengalihkan Proksi Sistem dari aktif ke nonaktif saat pohon sumber terbuka. Untuk beberapa alasan ini ditulis ke dalam file konfigurasi proyek. Ini dapat dengan mudah dihapus melalui source dengan "Pengaturan" -> "Edit file konfigurasi". Hapus saja di luar sana di bawah http

Ska
sumber
0

Saya mengalami masalah yang sama saat menggunakan Git Bash. Ketika saya melakukan hal yang sama di Command Prompt, itu bekerja dengan sempurna.

Daniel
sumber
0

FYI untuk informasi semua orang

Ini akan menjadi solusi yang tepat untuk mengatasi kesalahan berikut

Received HTTP code 407 from proxy after CONNECT

Jadi perintah berikut harus diperlukan

git config --global http.proxyAuthMethod 'basic'
git config --global https.proxy http://user:pass@proxyserver:port

Yang akan menghasilkan konfigurasi berikut

$ cat ~/.gitconfig
[http]
        proxy = http://user:pass@proxyserver:port
        proxyAuthMethod = basic
meappy
sumber
0

Menghapus "@" dari kata sandi berhasil untuk saya dan bagaimanapun juga jangan pernah menyimpan @ di kata sandi Anda, itu akan memberi Anda masalah dengan maven dan instalasi lebih lanjut

Codiee
sumber