git은 CONNECT 후 프록시에서 http 오류 407을 반환합니다.


95

git을 사용하여 PC에서 github에 연결하는 동안 문제가 있습니다. 시스템 승리 7.

프록시를 통해 연결되었으므로 git 구성 파일 (일반 git 폴더 및 git repo 폴더 모두)에 지정했습니다. 이를 위해 나는 내 자식 부시에 다음 줄을 입력했습니다.

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

다른 프로그램 (예 : maven)에서 작동하는 방식은 다음과 같습니다.

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

하지만 내 저장소를 푸시하거나 복제하려고하면

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

이미 내 사용자 이름뿐만 아니라 도메인 \ 사용자 이름을 입력하려고 시도하고 코드 언어 테이블에 문제가있는 경우 암호를 변경했습니다. 그리고 심지어 잘못된 암호를 입력했습니다. 오류는 동일하게 유지되었습니다.

'10 .65.64.177.com '에 들어가서 repo를 푸시하려고했을 때 다음을 받았습니다.

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

무엇을 시도해야할지 모르겠습니다.


stackoverflow.com/questions/8561671의 중복 ? https 프록시에 대한 내 대답을 참조하십시오 .
thinkOfaNumber apr

1
AD 환경에서 Windows 암호를 업데이트 한 후에도 동일한 문제가 발생했습니다. 프록시 서버 (cntlm)를 다시 시작해야했습니다.
Aaron C

답변:


84

나를 위해 일한 것은 rohitmohta가 제안하는 것과 비슷한 것입니다. 일반 DOS 명령 프롬프트에서 (git bash가 아님) :

먼저

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

그리고 어떤 경우에는

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

그때

git config --global http.sslVerify false

(필요한지 확인합니다. true로 설정하면 "SSL 인증서 문제 : 로컬 발급자 인증서를받을 수 없습니다"오류가 표시됨)

제 경우에는 all_proxy 변수를 정의 할 필요가 없습니다.

그리고 마지막으로

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

1
"git config --global http.sslVerify false"는 필요하지 않았지만 프록시 구성에 따라 달라질 수 있습니다.
anre

1
이 답변은 효과가 있으며 올바른 것으로 표시되어야합니다.
나딤 이크발

나를 위해 DOS가 아닌 git bash에서해야했습니다. 나는 DOS가 아무것도하지 않았다는 것을 알아 챘다! 즉. 수행하여 그것을 확인 : 자식 설정 --global -l
theQuestionMan

어떻게 대답은이다 git config --global http.proxy http://username:password@proxiURL:proxiPort질문의 다른 git config --global http.proxy http://<username>:<userpsw>@<proxy>:<port>하나 개의 요구가 프록시 지정할 수 있기 때문에 적은 올바른 것보다 다른 하나는 호스트 가 아닌 URL을 ?
Michel Jung

작품 매력
폴리 카르 Kavoo

37

4 가지모두 설정 해야.gitconfig 했습니다.

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

그래야만 복제가 성공했습니다.


여기에 언급 된 모든 옵션을 시도했지만 여전히 작동하지 않습니다. :(
Xavier Geoffrey

도대체 왜 모든 사람들이 SSL 검증을 우회하도록 제안합니까 ??? 이것은 안전하지 않으며 시스템을 손상시킬 수 있습니다!
flederwiesel

3
@flederwiesel 기업 프록시는 악하고 모든 종류의 어리 석음을 유발하기 때문입니다. 도메인 자격 증명을 6 곳에 일반 텍스트로 저장해야 실제로 프록시 리소스에 액세스 할 수 있습니다. 그리고 안전하지 않은 회사에서 발급 한 루트 인증서를 사용하거나 SSL 확인을 완전히 우회 / 무시합니다. 꽤 슬프다.
ggranum

36

이미 시스템 프록시 설정을 사용하고 있을 수 있습니다. 이 경우 모든 git 프록시설정 해제 하면 작동합니다.

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

1
이것은 적어도 오류가 나타나지 않도록하고 사용자 이름 / 암호에 대한 프롬프트를 생성했습니다. 때때로 git 클라이언트가 기본적으로 프록시를 잘못 설정하는 것 같습니다. Atlassian의 SourceTree를 사용하는 동안 동일한 오류가 발생했습니다.
Kelly S. French

이것은 많은 머리를 긁은 후에 Ubuntu 14.04에서 문제를 해결했습니다!
Tim Ebenezer 2011

2
이것은 또한 SourceTree를 사용할 때 나를 위해 해결했습니다.
TomSW

homebrew를 설치하려고 할 때이 오류가 발생했습니다 ... 이로 인해 문제가 해결되었습니다. 감사.
joeCarpenter

감사합니다. 이것이 VPN 터널을 통해 원격 위치에서 작업 할 때 저에게 도움이 된 유일한 것입니다.
Matt

34

다음 명령은 git이 자격 증명과 인증 방법을 프록시에 보내도록 강제하는 데 필요합니다.

git config --global http.proxyAuthMethod 'basic'

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


2
이것은 마침내 나를 위해 일한 것입니다! 구성 파일에서 프록시를 설정 한 후.
Dhanesh KM

3
이것은 또한 나에게 없어진 부분이었습니다. 감사합니다. (일반적으로 나는 '나도'라는 말과 부딪치지 않지만,이 대답은 꽤 멀고 더 많은 사랑이 필요합니다).
ggranum

이것이 바로 누락 된 것입니다!
ivspenna

이것은 내 https_proxy 환경 변수가 / etc / environment에 설정 되었기 때문에 필요한 유일한 git 구성 옵션 이되었습니다 .
라쿠 라이

이것은 나를 위해 일했지만 단 한 번의 틱없이
DeEgge

18

회사 방화벽 뒤에서 비슷한 문제에 직면했습니다. 다음을 수행하고 Windows 7 SP1을 실행하는 내 시스템에서 git shell을 사용하여 저장소를 복제 할 수 있습니다.

  1. 사용자에 대한 'all_proxy'환경 변수를 설정하십시오. curl에 필요합니다.

    export all_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  2. 사용자의 'https_proxy'환경 변수를 설정하십시오. curl에 필요합니다.

    export https_proxy=http://DOMAIN\proxyuser:proxypwd@proxy.server.com:8080
    
  3. 이것이 영향을 미치는지 확실하지 않습니다. 그러나 나는 이것을했고 그것은 작동했습니다.

    git config --global http.sslverify false
    
  4. 복제에 https : // 사용

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

참고 -1 : http : //를 사용하지 마십시오. 그것을 사용하면 아래 오류가 발생할 수 있습니다. https : //를 사용하여 해결할 수 있습니다.

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

참고 -2 : 암호에 @를 사용하지 마십시오. 그래도 $를 사용할 수 있습니다.


https_proxy = DOMAIN \ "proxyuser : proxypwd"@ proxy.server.com : 8080을 큰 따옴표와 함께 사용할 수 있으며 암호에이 @있습니다.
Vadorequest

1
"주위에 따옴표 를 사용하는 트릭이 있다는 것을 알고 있습니다 login:password. 그러나 실제로 시도하고 git은 따옴표를 무시했기 때문에 @암호가 엉망입니다. 누군가가 해결 방법을 가지고 있다면 언급 할 가치가 있다고 생각합니다.
Vadorequest

1
위에서 제안한 모든 명령을 시도했지만 그 후 CONNECT 후 프록시에서 HTTP 코드 407을 받기 시작했습니다.
user130934

1
특수 문자를 URL 인코딩 할 수 있습니다. 예를 들어 @는 % 40이됩니다. meyerweb.com/eric/tools/dencoder
Bryant

6

Windows 환경에서 동일한 문제가 발생했습니다.

방금 NTLM-APS (Windows NT 인증 프록시 서버)로 해결했습니다.

NTML 프록시를 구성하고 Git을 설정합니다.

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

3

Android Studio에서 407 오류가 발생했습니다. 프록시를 추가하려고했지만 아무 일도 일어나지 않았습니다. 회사 인증서와 관련이 있다는 것을 알았으므로 브라우저에서 내 보낸 다음 Git에 추가했습니다.

웹 브라우저에서 내보내기

인터넷 옵션> 콘텐츠> 인증서> 내보내기 (마법사에 따라 "Base 64로 인코딩 된 X.509 (.CER) 형식 선택)"

Git Bash에서

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

다음 페이지는 유용했습니다 https://blogs.msdn.microsoft.com/phkelley/2014/01/20/adding-a-corporate-or-self-signed-certificate-authority-to-git-exes-store/

내가 사용한 다른 스레드와 마찬가지로 프록시를 추가하려면

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

1
기본 키 저장소를 덮어 쓰지 "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"않고 대신 회사의 인증서를 여기에 추가합니다 (링크에 설명 된대로 별도의 파일에있을 수 있음).
jansohn

3

나는 같은 문제에 직면했기 때문에 먼저 내가 설정 한 npm 파일을 확인하고 다음 명령으로 확인했습니다.

npm config get proxy

그리고 나는 잘못된 프록시를 설정했고 다음과 같이 내 욕망 프록시를 설정했다는 것을 알게되었습니다.

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

그 후 그것은 나에게 작동합니다


1
내가 그것을해야한다 생각하기 때문에 "자식 설정 ...", "고궁 박물원 설정 ..."당신은 명령에 대한 확신
Gaurav 젊은이


1

내 조직에도 같은 문제가있었습니다.

많은 시도 끝에 다음과 같은 해결책을 찾았습니다.

  1. 시스템 관리자에게 프록시 인증 유형을 Kerberos에서 NTLM으로 변경하도록 신청했습니다. 필수 항목인지 확실하지 않지만 (나는이 문제에 대해 무식 함) 내 신청서가 승인되었습니다.

  2. 그 후 Git 설정을 추가합니다.

    git config --global http.proxyauthmethod ntlm

그 후에야 내 저장소를 복제 할 수있었습니다


1

나도 같은 문제가 있었고 http.proxyAuthMethod를 명시 적으로 기본으로 설정하여 해결하려고했습니다.

내 서버와 프록시간에 pcap 추적을 실행 한 후 git 복제 중에 프록시로 전송 된 "HTTP CONNECT"요청에 여전히 "Proxy-Authorization"헤더가 기본으로 설정되어 있지 않음을 알았습니다. 이것은 http.proxyAuthMethod를 지원하지 않는 내 자식 버전 "1.8.3.1"때문입니다.

최신 git 버전 (2.16.6)을 설치 한 후 " https://repo.ius.io/7/x86_64/packages/g/ "에서 rpm 패키지를 사용하여 http.proxyAuthMethod를 기본으로 설정하면 마침내 git에 영향을 미쳤습니다. 행동하고 내 자식 클론이 성공했습니다.

이게 도움이 되길 바란다


0

이 시점에 도달 한 후에는 노력에 집중해야한다고 생각합니다.

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

이는 프록시로 제대로 인증되지 않았 음을 의미합니다. 이 단계에서 제공 한 비밀번호가 올바른지 다시 한 번 확인할 수 있습니까?

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

0

이 문제는 내 Bitbucket 리포지토리에서 며칠 전에 발생했습니다. https가 아닌 http로 원격 URL을 설정하여 수정할 수있었습니다.

또한 명령 줄과 git config에서 https 프록시를 설정하려고 시도했지만 작동하지 않았습니다.

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

https를 사용하고 있습니다.

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

https URL을 http URL로 바꿉니다.

$ 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

이 오류는 사내에서 하나의 프록시를 사용하는 회사 네트워크와 외부에서 VPN을 사용할 때 두 번째 (완전히 다른) 프록시를 사용하기 때문에 발생했습니다. 원래 온 프레미스 프록시 용으로 구성되었고 오류를받은 다음 다른 곳에서 작업 할 때 대체 오프 프레미스 프록시를 사용하도록 구성을 업데이트해야했습니다.


0

비슷한 문제가 발생하여 아래 단계로 해결했습니다.

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

이 구성은 내 설정에서 작동합니다.

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

0

sourcetree를 사용하는 동안 동일한 문제가 발생했습니다. 이유는 sourcetree가 열려있는 동안 시스템 프록시를 켜기에서 끄기로 전환했을 수 있습니다. 어떤 이유로 이것은 프로젝트의 구성 파일에 기록되었습니다. "설정"-> "구성 파일 편집"을 통해 소스 트리에서 쉽게 삭제할 수 있습니다. http 아래에서 삭제하십시오.


0

Git Bash를 사용할 때 동일한 문제가 발생했습니다. 명령 프롬프트에서 동일한 작업을 수행했을 때 완벽하게 작동했습니다.


0

모든 사람의 정보에 대한 FYI

다음 오류를 해결하는 데 적합한 솔루션이었을 것입니다.

Received HTTP code 407 from proxy after CONNECT

따라서 다음 명령이 필요합니다.

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

다음 구성을 생성합니다.

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

0

암호에서 "@"를 제거하면 저에게 효과적이며 어쨌든 @ 암호를 절대로 유지하지 않으면 maven 및 추가 설치에 문제가 발생합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.