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.


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

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.


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


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

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:proxypwd@proxy.server.com:8080
    
  2. Setel variabel lingkungan 'https_proxy' untuk pengguna Anda. Diperlukan oleh curl.

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com: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.


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>

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

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


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.


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


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


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>

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://username@bitbucket.org/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

Perhatikan bahwa kami menggunakan https:

$ git remote -v
origin  https://username@bitbucket.org/sacgf/x.git (fetch)
origin  https://username@bitbucket.org/sacgf/x.git (push)

Ganti url https dengan url http:

$ git remote set-url origin http://username@bitbucket.org/sacgf/x.git
$ git pull
Username for 'https://bitbucket.org': username
Password for 'https://username@bitbucket.org': 
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

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.


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

0

Konfigurasi ini berfungsi di pengaturan saya:

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

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


0

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


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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.