HTTPS上的Git可以执行ls列表,但不能通过HTTP代理进行克隆

HTTPS上的Git可以执行ls列表,但不能通过HTTP代理进行克隆,git,curl,https,proxy,msysgit,Git,Curl,Https,Proxy,Msysgit,这是一个常见的问题,但我遇到的问题与其他人略有不同。我试图在工作时通过http代理使用git。我已经在git中配置了我的代理设置: C:\Program Files (x86)\Git\bin>git config --global -l http.proxy=https://c172635b4:password@p01.proxy.local:8080 当我发出git ls remote时,它会询问我密码并提供预期结果。这确认git通过代理正确地进行身份验证 但是,当我尝试进行git克

这是一个常见的问题,但我遇到的问题与其他人略有不同。我试图在工作时通过http代理使用git。我已经在git中配置了我的代理设置:

C:\Program Files (x86)\Git\bin>git config --global -l
http.proxy=https://c172635b4:password@p01.proxy.local:8080
当我发出git ls remote时,它会询问我密码并提供预期结果。这确认git通过代理正确地进行身份验证

但是,当我尝试进行git克隆时,会出现以下错误

error: RPC failed; result=22, HTTP code = 0
fatal: The remote end hung up unexpectedly
我使用GIT_CURL_VERBOSE=1运行它以查看日志,并且我能够看到它正确地向NTLM代理进行身份验证,直到结束:

< HTTP/1.1 407 Proxy Authentication Required
< Proxy-Authenticate: NTLM TlRMTVNTUAACAAAABgAGADgAAAA1goniA432smdf3mwAAAAAAAAAALAAsAA+AAAABgByFwAAAA9SAEUAUwACAAYAUgBFAFMAAQAYAFcAUwBQAEkAQwBCAEMAQQBBAEEAMAAxAAQAHAByAGUAcwAuAGIAbgBnAGYALgBsAG8AYwBhAGwAAwA2AFcAUwBQAEkAQwBCAEMAQQBBAEEAMAAxAC4AcgBlAHMALgBiAG4AZwBmAC4AbABvAGMAYQBsAAUAHAByAGUAcwAuAGIAbgBnAGYALgBsAG8AYwBhAGwABwAIAGq6JY+ND84BAAAAAA==
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: Keep-Alive
< Set-Cookie: BCSI-CS-dcfa3879f83cfd49=2; Path=/
< Connection: Keep-Alive
< Content-Length: 3742
< 
* Ignore 3742 bytes of response-body
* NTLM send, close instead of sending 2531 bytes
* Received HTTP code 407 from proxy after CONNECT
* About to connect() to proxy p01.proxy.local port 8080 (#0)
*   Trying 172.31.132.18... * connected
* Connected to p01.proxy.local (172.31.132.18) port 8080 (#0)
* Establish HTTP proxy tunnel to git.assembla.com:443
* Proxy auth using NTLM with user 'c172635b4'
* Server auth using Basic with user 'eric'
> CONNECT git.assembla.com:443 HTTP/1.1
Host: git.assembla.com:443
Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAIIAAAAYABgAmgAAAAYABgBYAAAAEAAQAF4AAAAUABQAbgAAABAAEACyAAAANYKI4gYBsR0AAAAPN9Y0OSiIbF7a4dr8yIqv9WwAYgBnAGMANgAxADIANwAxAGIANAAyAFUAQQAxADMAOAAxAEQAUwA1ADKgzMJlkKLlAAAAAAAAAAAAAAAAAAAAAHVtirzD6urrzJLWZ73HGWxFUEd926He985LMc+KepdWBDDgQQBESv8=
User-Agent: git/1.7.10.5997.gaa4aa
Proxy-Connection: Keep-Alive
Content-Type: application/x-git-upload-pack-request
Accept: application/x-git-upload-pack-result
Content-Encoding: gzip

< HTTP/1.1 407 Proxy Authentication Required
< Proxy-Authenticate: NTLM
* Authentication problem. Ignoring this.
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: close
< Set-Cookie: BCSI-CS-dcfa3879f83cfd49=2; Path=/
< Connection: close
< Content-Length: 3742
< 
* Closing connection #0
* HTTP response code said error
我确实在上找到了另一个帖子,这是一个尽可能重复的问题,但没有公认的解决方案,也没有任何建议适用


是否有人对如何进一步调试问题和/或使其正常工作有任何建议

在尝试了多个版本的Curl和/或git之后,我终于安装了一个本地代理服务器,并通过隧道将git传输到那里。我最终使用了,但有几个不同的方法可以奏效


我仍然不知道为什么curl在我的代理服务器上遇到了问题,但是使用cntlm作为中间人很好。

在尝试了curl和/或git的多个版本后,我最终安装了一个本地代理服务器,并通过隧道将git穿过那里。我最终使用了,但有几个不同的方法可以奏效

我仍然不知道为什么curl在我的代理服务器上遇到问题,但是使用cntlm作为中间人可以很好地工作

git version 1.7.10.msysgit.1

curl 7.21.1 (i686-pc-mingw32) libcurl/7.21.1 OpenSSL/0.9.8r zlib/1.2.3
Protocols: dict file ftp ftps http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: Largefile NTLM SSL SSPI libz