1

これはよくある質問/問題ですが、私は他の人とは少し異なる問題を抱えています。職場で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 https://eric@git.assembla.com/myproj.gitを発行すると、パスワードの入力を求められ、期待される結果が得られます。これにより、gitがプロキシを介して正しく認証されていることが確認されます。

ただし、git cloneを実行しようとすると、次のエラーが発生します。

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

私は走っています:

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

私はSOにもう1つの投稿を見つけました。これは、その質問の可能な限り重複に近いものですが、受け入れられている解決策はなく、適用可能な提案もありません。

問題をさらにデバッグしたり、これを機能させる方法について誰か提案がありますか?

4

1 に答える 1

1

複数のバージョンの Curl や git を試した後、最終的にローカル プロキシ サーバーをインストールし、そこから git をトンネルしました。私はcntlmを使用することになりましたが、機能する可能性のあるいくつかの異なるものがあります。

curl がプロキシ サーバーで問題を起こしている理由はまだわかりませんが、仲介者として cntlm を使用すると問題なく動作します。

于 2013-02-25T20:35:19.530 に答える