Опять проблемы с прокси в git (в Linux есть прокси NTLM)
На Linux-машине я хочу клонировать репозитории GitHub, находясь за прокси-сервером NTLM.
Я знаю об ответах здесь, на Stackru (например, A, B или C) о git
и прокси, и я в соответствии с ними сделал следующее:
В моем .gitconfig
Я установил прокси информацию в виде
[http]
sslVerify = false
proxy = http://<user>:<password>@<ip-adress>:<port-number>
[https]
sslVerify = false
proxy = http://<user>:<password>@<ip-adress>:<port-number>
(Примечание: я пробовал это, не отключая SSL также.)
Кроме того, я установил переменные среды
HTTP_PROXY=http://<user>:<password>@<ip-adress>:<port-number>
HTTPS_PROXY=http://<user>:<password>@<ip-adress>:<port-number>
для основного curl
звонки.
Тем не менее я не могу подключиться. Например я выдаю
git clone http://github.com/doorOfChoice/json-view
Если заранее я включил отладочный вывод через export GIT_CURL_VERBOSE=1
Я получаю следующий вывод сообщения об ошибке:
Cloning into 'json-view'...
* Couldn't find host github.com in the .netrc file; using defaults
* About to connect() to proxy <ip-address> port <port-number> (#0)
* Trying <ip-address>... * Connected to <ip-address> (<ip-address>) port <port-number> (#0)
> GET http://github.com/doorOfChoice/json-view/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/2.6.0
Host: github.com
Accept: */*
Accept-Encoding: gzip
Proxy-Connection: Keep-Alive
Accept-Language: en-US, *;q=0.9
Pragma: no-cache
< HTTP/1.1 407 Proxy Access Denied
< Expires: 0
< Server: WebMarshal Proxy
< Cache-Control: no-cache
< Connection: keep-alive
< Proxy-Connection: keep-alive
< Via: 1.1 WEBMARSHAL
< Content-Length: 2339
< Content-Type: text/html; charset=utf-8
< Proxy-Authenticate: Negotiate
< Proxy-Authenticate: NTLM
< Proxy-Authenticate: Basic realm="WebMarshal Proxy Server"
< X-WebMarshal-RequestID: <request-id>
<
* Ignoring the response-body
* Expire cleared
* Connection #0 to host <ip-address> left intact
* Issue another request to this URL: 'http://github.com/doorOfChoice/json-view/info/refs?service=git-upload-pack'
* Couldn't find host github.com in the .netrc file; using defaults
* Re-using existing connection! (#0) with host <ip-address>
* Connected to <ip-address> (<ip-address>) port <port-number> (#0)
> GET http://github.com/doorOfChoice/json-view/info/refs?service=git-upload-pack HTTP/1.1
User-Agent: git/2.6.0
Host: github.com
Accept: */*
Accept-Encoding: gzip
Proxy-Connection: Keep-Alive
Accept-Language: en-US, *;q=0.9
Pragma: no-cache
< HTTP/1.1 407 Proxy Access Denied
< Expires: 0
< Server: WebMarshal Proxy
< Cache-Control: no-cache
< Connection: keep-alive
< Proxy-Connection: keep-alive
< Via: 1.1 WEBMARSHAL
< Content-Length: 2339
< Content-Type: text/html; charset=utf-8
* gss_init_sec_context() failed: : Credentials cache file '<tmp-file>' not found< Proxy-Authenticate: Negotiate
< Proxy-Authenticate: NTLM
< Proxy-Authenticate: Basic realm="WebMarshal Proxy Server"
< X-WebMarshal-RequestID: <request-i>dstack
<
* Connection #0 to host <ip-address> left intact
fatal: unable to access 'http://github.com/doorOfChoice/json-view/': The requested URL returned error: 407
Странная вещь, curl
на свои произведения! Так чем же отличается выборка через git и curl? Как я могу сделать git clone <URL>
работать за этим типом прокси?
1 ответ
Копаясь глубже в Stackru, я пришел к ответам (вроде A и B), предлагая cntlm
- и это наконец работает! Так что сделайте следующее:
устанавливать cntlm
на вашем компьютере, настройте файл конфигурации с учетными данными прокси, запустите cntlmd
как сервис и отныне укажите все другие инструменты на прокси cntlm (по умолчанию http://127.0.0.1:3128/).