Корпоративный прокси Azure Devops с Git - PullRequest
0 голосов
/ 03 декабря 2018

Я создал проект и репо внутри Azure Dev-Ops.Мы сидим за корпоративным прокси и хотим клонировать из этого проекта.

Я установил переменные среды http_proxy, https_proxy, HTTP_PROXY, HTTPS_PROXY, git config --global https.proxy, git config --globalhttp.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

Нужно ли что-то явно указывать?

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Обновление до более новой версии git решает эту проблему.

0 голосов
/ 04 декабря 2018

Похоже, что ваш прокси-сервер неправильно настроен и предлагает механизмы аутентификации, которые он не может поддерживать (в данном случае, Negotiate).Вы можете обойти это, установив параметр http.proxyAuthMethod на что-то подходящее.Основываясь на выводе, вы, вероятно, захотите использовать ntlm или basic.

. Кроме того, вы можете установить его для каждого URL или шаблона, используя что-то вроде git config http.https://*.azure.com/.proxyAuthMethod ntlm для всехHTTPS-URL с именами хостов, соответствующими *.azure.com.

...