git, CONNECT'ten sonra proxy'den 407 http hatası döndürüyor


99

Git kullanarak bilgisayarımdan github'a bağlanırken sorun yaşıyorum. Sistem Kazanma 7.

Proxy üzerinden bağlantım var, bu yüzden git yapılandırma dosyalarında (hem genel git klasöründe hem de git repo klasöründe) belirttim. Bunu yapmak için git bushumun bir sonraki satırına girdim:

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

Diğer programlarda (örn: maven) çalışma şekli şöyle görünür:

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

Ama depomu zorlamaya veya klonlamaya çalıştığımda,

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

Sadece kullanıcı adımı değil, etki alanı \ kullanıcı adını da girmeye çalışıyorum, kod dili tablolarında sorun olması durumunda şifremi değiştirdim. Ve hatta yanlış şifre girdim. Hata aynı kaldı.

'10 .65.64.177.com'a girip repo göndermeye çalıştığımda, şunu aldım:

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

Ne deneyeceğimi bilmiyorum.


Kopyası stackoverflow.com/questions/8561671 ? Https proxy ile ilgili cevabımı orada görün .
thinkOfaNumber

1
Windows şifremi bir AD ortamında güncelledikten sonra aynı sorunu alıyordum. Görünüşe göre proxy sunucumu (cntlm) yeniden başlatmam gerekiyordu.
Aaron C

Yanıtlar:


87

Benim için işe yarayan, rohitmohta'nın önerdiğine benzer bir şey; normal DOS komut isteminde (git bash'da değil):

ilk

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

ve bazı durumlarda ayrıca

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

sonra

git config --global http.sslVerify false

(Bunun gerekli olduğunu onaylıyorum: Doğru olarak ayarlanmışsa "SSL sertifikası sorunu: yerel yayıncı sertifikası alınamıyor" hatası alınıyor)

benim durumumda all_proxy değişkenini tanımlamaya gerek yok

ve sonunda

git clone https://github.com/someUser/someRepo.git

1
"Git config --global http.sslVerify false" 'a ihtiyacım yoktu, ancak bu muhtemelen proxy yapılandırmasına bağlı.
anre

1
Bu cevap işe yarıyor ve doğru olarak işaretlenmelidir.
Nadeem Iqbal

Benim için DOS'ta değil git bash'da yapmam gerekiyordu. DOS'un hiçbir şey yapmadığını fark ettim! yani. yaparak kontrol edin: git config --global -l
theQuestionMan

URL'yi değil proxy sunucusunu belirtmek gerektiğinden , yanıtın git config --global http.proxy http://username:password@proxiURL:proxiPortsorudan farkı git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>daha az doğru olmaktan başka ne olabilir ?
Michel Jung

Cazibe gibi çalışıyor
Polycarp Kavoo

40

Git'i kimlik bilgilerini ve kimlik doğrulama yöntemini proxy'ye göndermeye zorlamak için aşağıdaki komut gereklidir:

git config --global http.proxyAuthMethod 'basic'

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


3
Sonunda benim için işe yarayan buydu! yapılandırma dosyasında proxy'yi ayarladıktan sonra.
Dhanesh KM

3
Bu da benim için eksik parçaydı. Teşekkür ederim. (Normalde 'ben de' yorumlarıyla karşılaşmam, ancak bu cevap oldukça aşağıdadır ve daha fazla sevgiye ihtiyaç duyar).
ggranum

Bu tam olarak eksik olan şeydi!
ivspenna

Https_proxy ortam değişkenim / etc / environment içinde ayarlandığı için bu ihtiyacım olan tek git config seçeneği oldu.
Rakurai

39

Belki de zaten sistem proxy ayarını kullanıyorsunuz - bu durumda ayarlanmamış tüm git proxy'leri çalışacaktır:

git config --global --unset http.proxy
git config --global --unset https.proxy

1
Bu en azından hatanın görünmesini engelledi ve bir kullanıcı adı / şifre istemi oluşturdu. Git istemcisinin bazen proxy'yi varsayılan olarak yanlış ayarladığı görülüyor. Atlassian tarafından SourceTree kullanırken aynı hatayı yaşadım.
Kelly

Bu, çok kafa karıştırdıktan sonra Ubuntu 14.04'te sorunu benim için çözdü!
Tim Ebenezer

2
Bu, SourceTree kullanırken benim için de çözdü, teşekkürler.
TomSW

Homebrew'i kurmaya çalışırken bu hatayı alıyordum ... bu benim sorunumu çözdü. Teşekkürler.
joeCarpenter

Teşekkür ederim, uzak konumdan VPN tüneli üzerinden çalışırken benim için çalışan tek şey bu.
Matt

38

4 şeyi de .gitconfigkurmak zorunda kaldım :

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

Ancak o zaman klonlama başarılı oldu.


Burada bahsedilen tüm seçenekleri denedim ve hala benim için çalışmıyor. :(
Xavier Geoffrey

Neden herkes SSL doğrulamasını atlatmayı öneriyor ??? BU GÜVENLİ DEĞİLDİR ve sisteminizi tehlikeye atabilir!
flederwiesel

3
@flederwiesel Çünkü kurumsal proxy'ler kötüdür ve her türlü aptallığa neden olur - örneğin, etki alanı kimlik bilgilerinizi yarım düzine yerde açık metin olarak saklamak, böylece gerçekten proxy kaynaklarına erişebilirsiniz. Ve güvensiz, şirket tarafından verilen kök sertifikaların kullanılmasını zorlamak - veya SSL doğrulamasını tamamen atlamak / yok saymak. Oldukça üzücü.
ggranum

19

Kurumsal güvenlik duvarının arkasında benzer bir sorunla karşılaşmıştım. Aşağıdakileri yaptım ve Windows 7 SP1 çalıştıran sistemimden git shell kullanarak depoyu klonlayabildim.

  1. Kullanıcınız için 'all_proxy' ortam değişkenini ayarlayın. Curl için gerekli.

    export all_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  2. Kullanıcınız için 'https_proxy' ortam değişkenini ayarlayın. Curl için gerekli.

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  3. Bunun herhangi bir etkisi olup olmadığından emin değilim. Ama bunu yaptım ve işe yaradı:

    git config --global http.sslverify false
    
  4. Kopyalamak için https: // kullanın

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

Not-1: http: // kullanmayınız. Bunu kullanmak aşağıdaki hatayı verebilir. Https: // kullanılarak çözülebilir.

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

Not-2: Şifrenizde @ kullanmaktan kaçının. Yine de $ kullanabilir.


Https_proxy = DOMAIN \ "proxyuser: proxypwd" @ proxy.server.com: 8080'i çift tırnaklarla kullanabilir ve @şifrenizde bir yere sahip olabilirsiniz.
Vadorequest

1
Tırnak kullanmanın bir numarası olduğunu biliyorum " etrafında login:password. Ama aslında denedim ve alıntıları görmezden geldim, bu yüzden @şifrede karıştırdım. Birisinin bir çözümü varsa, bundan bahsetmeye değer olduğunu düşünüyorum.
Vadorequest

1
Yukarıda önerilen tüm komutları denedim, ancak bundan sonra CONNECT'ten sonra proxy'den 407 HTTP kodunu almaya başladım.
kullanıcı130934

1
Herhangi bir özel karakterin URL'sini kodlayabilirsiniz. Örneğin @,% 40 olur. meyerweb.com/eric/tools/dencoder
Bryant

6

Windows ortamında da aynı sorunu yaşadım.

NTLM-APS (bir Windows NT kimlik doğrulama proxy sunucusu) ile çözdüm

NTML proxy'nizi yapılandırın ve Git'i buna ayarlayın:

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

3

Android Studio'dan 407 hatası aldım. Proxy eklemeye çalıştım ama hiçbir şey olmadı. Şirket sertifikasıyla ilgili olduğunu öğrendim, bu yüzden tarayıcımdan bir tane dışa aktardım ve Git'e ekledim.

Web Tarayıcısından Dışa Aktar

İnternet Seçenekleri> İçerik> Sertifikalar> Dışa Aktar (Sihirbazı izleyin, "Base 64 kodlu X.509 (.CER) biçimini seçtim)

Git Bash'te

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

Aşağıdaki sayfa yararlı oldu https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

Proxy eklemek için, kullandığım diğer iş parçacıkları gibi

git config --global http.proxy proxy.company.net:8080
git config --global https.proxy proxy.company.net:8080

1
Varsayılan anahtar deposunun üzerine yazmazdım, "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"bunun yerine şirketinizin sertifikasını ona eklerim (belki bağlantıda açıklandığı gibi ayrı bir dosyada).
jansohn

3

Aynı sorunla karşı karşıyaydım, bu yüzden önce npm dosyamı ayarladığım şeyi kontrol ettim, şu komutla kontrol ettim: -

npm config get proxy

ve yanlış proxy ayarladığımı öğrendim ve arzu proxyimi aşağıdaki gibi ayarladım:

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

Ondan sonra benim için çalışıyor


1
"Npm config ..." komutundan emin misiniz, çünkü sanırım "git config ..." olmalıdır
Gaurav Lad

2

Görünüşe göre şifreniz yanlış. Kimlik bilgilerinizi tekrar kontrol edin.


2

Bilginize herkesin bilgisi için

Bu, aşağıdaki hatayı çözmek için uygun bir çözüm olabilirdi

Received HTTP code 407 from proxy after CONNECT

Bu nedenle aşağıdaki komutlar gerekli olmalıdır

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

Aşağıdaki yapılandırmayı oluşturan

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

1

Bu noktaya geldikten sonra çabalarınıza odaklanmanız gerektiğini düşünüyorum:

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

Bu, proxy ile uygun şekilde kimliğinizi doğrulamadığınız anlamına gelir. Bu adımda verdiğiniz şifrenin doğru olup olmadığını iki kez kontrol edebilir misiniz?

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

1

Organizasyonumda da aynı sorunu yaşadım.

Birçok denemeden sonra aşağıdaki çözüme ulaştım:

  1. Proxy kimlik doğrulama türünü Kerberos'tan NTLM'ye değiştirmek için sistem yöneticisine başvurdum. Zorunlu olup olmadığından emin değilim (bu konuda cahilim), ancak başvurum onaylandı.

  2. Bundan sonra Git ayarını ekliyorum

    git config --global http.proxyauthmethod ntlm

Ancak bundan sonra depomu klonlayabildim


1

Ben de aynı sorunu yaşadım ve http.proxyAuthMethod'u açıkça temel olarak ayarlayarak çözmeye çalıştım.

Sunucum ve proxy arasında bir pcap izlemesi çalıştırdıktan sonra, git klonu sırasında proxy'ye gönderilen "HTTP CONNECT" isteğinin hala "Proxy-Authorization" başlığının temel olarak ayarlanmadığını fark ettim. Bunun nedeni http.proxyAuthMethod'u desteklemeyen "1.8.3.1" git sürümümdü.

En yeni bir git sürümünü (2.16.6) yükledikten sonra, rpm paketlerini burada kullanın " https://repo.ius.io/7/x86_64/packages/g/ " olan , http.proxyAuthMethod'u temel olarak ayarlamak nihayet git üzerinde etkili oldu davranış ve sonra git klonum başarılı oldu.

Umarım bu yardımcı olur


0

Bu sorun birkaç gün önce Bitbucket depolarımda ortaya çıktı. Uzak url'yi https yerine http olarak ayarlayarak düzeltebildim.

Ayrıca komut satırında ve git config'de https proxy'leri kurmayı denedim ama bu işe yaramadı.

$ git pull
fatal: unable to access 'https://username@bitbucket.org/sacgf/x.git/': Received HTTP code 407 from proxy after CONNECT

Https kullandığımızı unutmayın:

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

Https url'yi http url ile değiştirin:

$ 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

Bu hatayı, şirket ağımın şirket içinde iken bir proxy ve dışarıdan VPN kullanıldığında ikinci (tamamen farklı) bir proxy kullanması nedeniyle yaşadım. Başlangıçta şirket içi proxy için yapılandırılmıştım, hatayı aldım ve ardından başka bir yerde çalışırken alternatif, şirket dışı proxy kullanmak için yapılandırmamı güncellemem gerekti.


0

Benzer bir sorunu yaşadım ve aşağıdaki adımlarla çözdüm:

** Git'e proxy ayrıntılarını ekleyin **

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

Bu yapılandırma benim kurulumumda çalışıyor:

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

0

Kaynak ağacı kullanırken aynı sorunu yaşıyorsunuz Nedeni Belki de kaynak ağacı açıkken Sistem Proxy'sini açıktan kapalı konuma getirmekti. Bazı nedenlerden dolayı bu, bir projenin yapılandırma dosyasına yazılmıştır. Bu, kaynak ağacı üzerinden "Ayarlar" -> "Yapılandırma dosyasını düzenle" ile kolayca silinebilir. Sadece http altında silin


0

Git Bash'i kullanırken aynı sorunla karşılaştım. Komut İstemi'nde aynı şeyi yaptığımda mükemmel çalıştı.


0

Paroladan "@" karakterinin kaldırılması benim için işe yaradı ve her durumda @ parolanızı asla parolanızda saklamayın, bu size maven ve daha fazla yükleme ile ilgili sorun verecektir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.