我已经在Azure Dev-Ops中创建了一个项目和存储库。 我们坐在公司代理的后面,并希望从该项目中克隆。
我已将环境变量http_proxy,https_proxy,HTTP_PROXY,HTTPS_PROXY,git config --global https.proxy,git config --global http.proxy设置为以下匹配的http或https版本 http://domain\username:password@ProxAddr:Proxy 要么 https://domain\username:password@ProxAddr:Proxy
当我运行git clone https://username:pwd@dev.azure.com/username/ProjectName/_git/RepoName时,出现以下错误。
Cloning into 'ProjectName'...
* Couldn't find host dev.azure.com in the .netrc file; using defaults
* Trying {proxyip} ...
* Connected to {proxyip} ({proxyip}) port {proxyport} (#0)
* Establish HTTP proxy tunnel to dev.azure.com:443
> CONNECT dev.azure.com:443 HTTP/1.1
Host: dev.azure.com:443
User-Agent: git/2.7.4
Proxy-Connection: Keep-Alive
< HTTP/1.1 407 Proxy Authentication Required
< Proxy-Authenticate: NEGOTIATE
< Proxy-Authenticate: NTLM
< Proxy-Authenticate: BASIC realm="{CORPRELM}"
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: close
< Connection: close
< Content-Length: 849
<
* Ignore 849 bytes of response-body
* Connect me again please
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 592 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: Error in the push function.
* Closing connection 0
* Couldn't find host dev.azure.com in the .netrc file; using defaults
* Hostname {proxyip} was found in DNS cache
* Trying {proxyip}...
* Connected to {proxyip} ({proxyip}) port {proxyport}(#1)
* Establish HTTP proxy tunnel to dev.azure.com:443
> CONNECT dev.azure.com:443 HTTP/1.1
Host: dev.azure.com:443
User-Agent: git/2.7.4
Proxy-Connection: Keep-Alive
< HTTP/1.1 407 Proxy Authentication Required
< Proxy-Authenticate: NEGOTIATE
* gss_init_sec_context() failed: : SPNEGO cannot find mechanisms to negotiate
< Proxy-Authenticate: NTLM
< Proxy-Authenticate: BASIC realm="{CORPREALM}"
< Cache-Control: no-cache
< Pragma: no-cache
< Content-Type: text/html; charset=utf-8
< Proxy-Connection: close
< Connection: close
< Content-Length: 849
<
* Received HTTP code 407 from proxy after CONNECT
* Closing connection 1
fatal: unable to access 'https://username:devopspwdF@dev.azure.com/username/DevOpsProject/_git/DevOpsRepo/': gnutls_handshake() failed: Error in the push function.
错误似乎是这个?
< Proxy-Authenticate: NEGOTIATE
* gss_init_sec_context() failed: : SPNEGO cannot find mechanisms to negotiate
我需要明确声明某些内容吗?
答案 0 :(得分:3)
您的代理服务器似乎配置错误,并提供了它不支持的身份验证机制(在这种情况下,是协商)。您可以通过将http.proxyAuthMethod
选项设置为合适的选项来解决此问题。根据输出,您可能需要使用ntlm
或basic
。
此外,您可以针对主机名与git config http.https://*.azure.com/.proxyAuthMethod ntlm
匹配的所有HTTPS URL使用类似*.azure.com
的方式,针对每个URL或模式进行设置。
答案 1 :(得分:1)
更新到新版本的git即可解决此问题。