git zwraca błąd http 407 z serwera proxy po połączeniu


98

Mam problem podczas łączenia się z github z mojego komputera za pomocą git. System Win 7.

Mam połączenie przez proxy, więc określiłem je w plikach konfiguracyjnych git (zarówno w ogólnym folderze git, jak iw folderze git repo). Aby to zrobić, wprowadziłem następną linię do mojego git busha:

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

Sposób działania na innych programach (np. Maven) wygląda tak:

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

Ale kiedy próbuję wypchnąć lub sklonować moje repozytorium, otrzymuję

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

Próbuję już wprowadzić nie tylko swoją nazwę użytkownika, ale domenę \ nazwę użytkownika, zmieniłem hasło w przypadku problemów z tabelami języków kodu. I nawet wprowadziłem złe hasło. Błąd pozostał ten sam.

Kiedy wszedłem na '10 .65.64.177.com 'i próbowałem push repo, otrzymałem:

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

Po prostu nie wiem, czego spróbować.


Duplikat pliku stackoverflow.com/questions/8561671 ? Zobacz moją odpowiedź na temat serwera proxy https.
— thinkOfaNumber

1
Ten sam problem pojawiał się po zaktualizowaniu hasła systemu Windows w środowisku AD. Okazało się, że po prostu musiałem zrestartować serwer proxy (cntlm).
— Aaron C

Odpowiedzi:


87

U mnie zadziałało coś podobnego do tego, co proponuje rohitmohta; w zwykłym wierszu poleceń DOS (nie w git bash):

pierwszy

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

aw niektórych przypadkach także

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

następnie

git config --global http.sslVerify false

(Potwierdzam, że jest to konieczne: jeśli ustawione na prawda, pojawia się błąd „Problem z certyfikatem SSL: nie można uzyskać certyfikatu lokalnego wydawcy”)

w moim przypadku nie ma potrzeby definiowania zmiennej all_proxy

i w końcu

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

1
Nie potrzebowałem "git config --global http.sslVerify false", ale to prawdopodobnie zależy od konfiguracji proxy.
— 2016

1
Ta odpowiedź działa i powinna zostać oznaczona jako poprawna.
— Nadeem Iqbal

Musiałem to zrobić w git bash, a nie w DOS-ie. Zauważyłem, że DOS nic nie zrobił! to znaczy. sprawdź to, wykonując: git config --global -l
— theQuestionMan

Czym odpowiedź git config --global http.proxy http://username:password@proxiURL:proxiPortróżni się od pytania git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>innego niż mniej poprawna, ponieważ trzeba określić hosta proxy , a nie adres URL ?
— Michel Jung

Działa jak urok
— Polycarp Kavoo

40

Następujące polecenie jest potrzebne, aby wymusić na git wysłanie poświadczeń i metody uwierzytelniania do serwera proxy:

git config --global http.proxyAuthMethod 'basic'

Źródło: https://git-scm.com/docs/git-config#git-config-httpproxyAuthMethod


3
To w końcu zadziałało! po ustawieniu proxy w pliku konfiguracyjnym.
— Dhanesh KM

3
To też był dla mnie brakujący element. Dziękuję Ci. (Zwykle nie napotykam komentarzy „ja też”, ale ta odpowiedź jest dość odległa i wymaga więcej miłości).
— ggranum

Właśnie tego brakowało!
— ivspenna

Skończyło się na tym, że była to jedyna opcja konfiguracji git, której potrzebowałem, ponieważ moja zmienna środowiskowa https_proxy została ustawiona w / etc / environment.
— Rakurai

38

Musiałem konfiguracji wszystkie 4 rzeczy w .gitconfigz:

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

Dopiero wtedy klonowanie się powiodło.


Wypróbowałem wszystkie wymienione tutaj opcje i nadal nie działają. :(
— Xavier Geoffrey

Dlaczego do cholery wszyscy proponują obejście weryfikacji SSL ??? JEST TO NIEBEZPIECZNE i może zagrozić Twojemu systemowi!
— flederwiesel

3
@flederwiesel Ponieważ korporacyjne serwery proxy są złe i powodują różnego rodzaju głupoty - na przykład konieczność przechowywania danych uwierzytelniających domeny w postaci zwykłego tekstu w pół tuzinie miejsc, aby faktycznie uzyskać dostęp do zasobów proxy. Wymuszenie korzystania z niezabezpieczonych certyfikatów głównych wydanych przez firmę lub całkowite pominięcie / zignorowanie weryfikacji SSL. To dość smutne.
— ggranum

37

Być może już używasz systemowego ustawienia proxy - w takim przypadku odznaczenie wszystkich serwerów proxy git będzie działać:

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

1
To przynajmniej zapobiegło pojawieniu się błędu i wygenerowało monit o podanie nazwy użytkownika / hasła. Wygląda na to, że klient git czasami nieprawidłowo ustawia serwer proxy. Ten sam błąd wystąpił podczas korzystania z SourceTree firmy Atlassian.
— Kelly S. French

To rozwiązało problem z Ubuntu 14.04 po wielu drapaniach po głowie!
— Tim Ebenezer

2
To również rozwiązało problem podczas korzystania z SourceTree, dzięki.
— TomSW

Otrzymałem ten błąd podczas próby zainstalowania homebrew ... to rozwiązało mój problem. Dzięki.
— joeCarpenter

Dziękuję, to jedyna rzecz, która działała dla mnie podczas pracy ze zdalnej lokalizacji przez tunel VPN.
— Matt,

18

Miałem podobny problem za zaporą korporacyjną. Wykonałem następujące czynności i mogłem sklonować repozytorium przy użyciu powłoki git z mojego systemu z systemem Windows 7 SP1.

  1. Ustaw zmienną środowiskową „all_proxy” dla swojego użytkownika. Wymagane przez curl.

    export all_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  2. Ustaw zmienną środowiskową „https_proxy” dla swojego użytkownika. Wymagane przez curl.

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  3. Nie jestem pewien, czy ma to jakiś wpływ. Ale zrobiłem to i zadziałało:

    git config --global http.sslverify false
    
  4. Użyj https: // do klonowania

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

Uwaga-1: nie używaj http: //. Użycie tego może spowodować poniższy błąd. Można to rozwiązać za pomocą https: //.

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

Uwaga-2: Unikaj umieszczania znaku @ w haśle. Można jednak użyć $.


Możesz użyć https_proxy = DOMAIN \ "proxyuser: proxypwd" @ proxy.server.com: 8080 z podwójnymi cudzysłowami i hav an @w haśle.
— Vadorequest

1
Wiem, że to sztuczka z użyciem cudzysłowów "wokół login:password. Ale faktycznie próbowałem i git zignorował cudzysłowy, więc @hasło w haśle zepsuło sprawę. Jeśli ktoś ma obejście, myślę, że warto o tym wspomnieć.
— Vadorequest

1
Wypróbowałem wszystkie polecenia sugerowane powyżej, ale potem zacząłem otrzymywać kod HTTP 407 z serwera proxy po połączeniu.
— user130934

1
Możesz zakodować w adresie URL dowolne znaki specjalne. Na przykład @ staje się% 40. meyerweb.com/eric/tools/dencoder
— Bryant

6

Miałem ten sam problem w środowisku Windows.

Właśnie rozwiązałem problem z NTLM-APS (serwerem proxy uwierzytelniania systemu Windows NT)

Skonfiguruj swoje proxy NTML i ustaw na nim Git:

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

3

Wystąpił błąd 407 z Android Studio. Próbowałem dodać serwer proxy, ale nic się nie stało. Okazało się, że jest to związane z certyfikatem firmy, więc wyeksportowałem ten z przeglądarki i dodałem do Gita.

Eksportuj z przeglądarki internetowej

Opcje internetowe> Treść> Certyfikaty> Eksportuj (Postępuj zgodnie z instrukcjami kreatora, wybrałem format „X.509 z kodowaniem Base 64 (.CER))

W Git Bash

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

Poniższa strona była przydatna https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

Aby dodać proxy, podobnie jak inne wątki, których użyłem

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

1
Nie nadpisałbym domyślnego magazynu kluczy, "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"ale zamiast tego dodałem do niego certyfikat Twojej firmy (może w osobnym pliku, jak opisano w linku).
— jansohn,

3

Miałem ten sam problem, więc najpierw sprawdziłem mój plik npm, co ustawiłem, sprawdziłem to za pomocą tego polecenia: -

npm config get proxy

i dowiaduję się, że ustawiłem niewłaściwy serwer proxy i ustawiłem proxy pożądania w następujący sposób:

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

Potem mi się to udaje


1
Czy jesteś pewien co do polecenia: "npm config ...", ponieważ przypuszczam, że powinno to być "git config ..."
— Gaurav Lad

2

Twoje hasło wydaje się być nieprawidłowe. Sprawdź ponownie swoje poświadczenia.


2

FYI dla wszystkich informacji

Byłoby to odpowiednie rozwiązanie do rozwiązania następującego błędu

Received HTTP code 407 from proxy after CONNECT

Dlatego konieczne powinny być następujące polecenia

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

Który wygenerowałby następujący plik config

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

1

Miałem ten sam problem w swojej organizacji.

Po wielu próbach doszedłem do następującego rozwiązania:

  1. Zwróciłem się do administratora systemu o zmianę typu uwierzytelniania proxy z Kerberos na NTLM. Nie jestem pewien, czy to było obowiązkowe (jestem ignorantem w tej sprawie), ale moja aplikacja została zaakceptowana.

  2. Następnie dodaję ustawienie Git

    git config --global http.proxyauthmethod ntlm

Dopiero potem mogłem sklonować swoje repozytorium


1

Miałem również ten sam problem i próbowałem go rozwiązać, ustawiając jawnie http.proxyAuthMethod na basic.

Po uruchomieniu śledzenia pcap między moim serwerem a proxy, zauważyłem, że żądanie „HTTP CONNECT” wysyłane do proxy podczas klonu git nadal nie ma nagłówka „Proxy-Authorization” ustawionego na basic. Wynikało to z mojej wersji gita „1.8.3.1”, która nie obsługuje protokołu http.proxyAuthMethod.

Po zainstalowaniu najnowszej wersji gita (2.16.6), używając pakietów rpm dostępnych tutaj " https://repo.ius.io/7/x86_64/packages/g/ ”, ustawienie http.proxyAuthMethod na basic miało w końcu wpływ na git zachowanie, a następnie mój klon git się powiódł.

mam nadzieję, że to pomoże


0

Myślę, że po dojściu do tego punktu powinieneś skoncentrować swoje wysiłki:

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

Oznacza to, że nie zostałeś poprawnie uwierzytelniony przez proxy. Czy możesz dwukrotnie sprawdzić, czy hasło podane w tym kroku jest prawidłowe?

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

0

Ten problem wystąpił kilka dni temu w moich repozytoriach Bitbucket. Udało mi się to naprawić, ustawiając zdalny adres URL na http zamiast https.

Próbowałem także ustawić serwery proxy https w wierszu poleceń i konfiguracji git, ale to nie zadziałało.

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

Zauważ, że używamy https:

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

Zastąp adres URL https adresem 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

Wystąpił ten błąd, ponieważ moja sieć firmowa korzystała z jednego serwera proxy w siedzibie i drugiego (zupełnie innego) serwera proxy, gdy VPN był używany z zewnątrz. Byłem pierwotnie skonfigurowany dla lokalnego serwera proxy, otrzymałem błąd, a następnie musiałem zaktualizować konfigurację, aby korzystać z alternatywnego serwera proxy poza siedzibą firmy podczas pracy w innym miejscu.


0

Miałem podobny problem i rozwiązałem, wykonując poniższe czynności:

** Dodaj szczegóły serwera proxy w 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

Ta konfiguracja działa w mojej konfiguracji:

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

0

Mają ten sam problem podczas korzystania z drzewa źródłowego. Przyczyną było przełączenie serwera proxy systemu z włączonego na wyłączony, gdy drzewo źródłowe było otwarte. Z jakiegoś powodu zostało to zapisane w pliku konfiguracyjnym projektu. Można to łatwo usunąć z drzewa źródłowego poprzez „Ustawienia” -> „Edytuj plik konfiguracyjny”. Po prostu usuń go pod adresem http


0

Napotkałem ten sam problem podczas korzystania z Git Bash. Kiedy zrobiłem to samo w wierszu polecenia, zadziałało idealnie.


0

Usunięcie „@” z hasła zadziałało dla mnie iw każdym razie nigdy nie zachowuj @ w swoim haśle spowoduje to problem z maven i dalszą instalacją

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.