Подтвердить что ты не робот

Как настроить Git, чтобы пройти через прокси-сервер

Я хочу подключиться к GitHub на работе и пропустить http-прокси. Я могу выйти на FTP, используя cURL, используя команду

curl -v -g --ftp-pasv --upload-file MYFILE --proxy PROXYADDRESS:PROXYPORT --proxy-ntlm --proxy-user WINDOWSDOMAIN\WINDOWSUSER:WINDOWSPASSWORD ftp://FTPUSER:[email protected]/

Я пока не смог предоставить эквивалентные настройки для Git.

Я пробовал следующие инструкции с помощью Github Through Draconian Proxies под cygwin.

У меня установлен штопор и пытался SSH на GitHub

ssh github.com

или

ssh ssh.github.com

Я возвращаюсь

ssh: Не удалось разрешить имя хоста ssh.github.com: имя хоста или имя сервера или неизвестно.

Я попытался установить прокси-сервер http и https.

Вот результат из git --config -l

core.symlinks=false
core.autocrlf=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
pack.packsizelimit=2g
help.format=html
http.sslcainfo=C:/Program Files/Git/bin/curl-ca-bundle.crt
sendemail.smtpserver=/bin/msmtp.exe
diff.astextplain.textconv=astextplain
user.name=Peter Wilkinson
[email protected]
github.user=ProggerPete
github.token=shouldprobablykeepthissecret
http.proxy=http://somedomain\someuser:[email protected]:80
https.proxy=http://somedomain\someuser:[email protected]:80

Я также запускал

export https_proxy=http://somedomain\someuser:[email protected]:80
export http_proxy=http://somedomain\someuser:[email protected]:80
set https_proxy=http://somedomain\someuser:[email protected]:80
set http_proxy=http://somedomain\someuser:[email protected]:80

Затем я пытаюсь клонировать и получать.

$ git clone https://[email protected]/project/JavaScript-Maven-Plugin.git
Cloning into JavaScript-Maven-Plugin...
Password:
error: The requested URL returned error: 407 while accessing https://ProggerPet
@github.com/project/JavaScript-Maven-Plugin.git/info/refs

fatal: HTTP request failed

Мне кажется, что я проваливаю аутентификацию с помощью прокси. Однако я использую тот же логин и пароль, который работает для FTP через cURL.

Как я могу подключиться?

4b9b3361

Ответ 1

После многого избиения я наконец наткнулся на http://cntlm.sourceforge.net/. Это прокси-сервер, который понимает аутентификацию ntlm.

Я установил его и рассказал об http-прокси. Затем на CNTLM указал git, и все это начало работать.

Я нашел, что это очень расстраивает, поэтому, надеюсь, это поможет кому-то еще в той же ситуации.

Ответ 2

Мне обычно нужно только установить:

set http_proxy=http://<login_internet>:<password_internet>@aproxy:aport
set https_proxy=http://<login_internet>:<password_internet>@aproxy:aport

(обратите внимание, что https_proxy относится к одному и тому же адресу http, а не https, прокси-серверу)

См. также "Не удается заставить Http на git работать".

Ответ 3

Вы можете поместить информацию прокси в свой файл ~/.curlrc:

/home/usr/.curlrc

proxy = proxy.proxyhost.com:8443
  proxy-user = пользователь: передать
  proxy-ntlm = true
  noproxy = localhost, 127.0.0.1, intraweb.company.com

Ответ 4

Вы вряд ли сможете получить ssh для github, туннелированный через ваш прокси. Однако, поскольку github предоставляет https-URL для всех своих репозиториев, вы можете нажать на то, что вам не нужно ssh. Если вы уже проверили репозиторий, вы можете изменить URL-адрес, используемый с

git remote set-url origin https://github.com/project/repo.git
git remote set-url --push origin https://[email protected]/project/repo.git

(пропустите вторую строку, если вам не нужен push-доступ). Это, наряду с настройкой переменных окружения (https_proxy), упомянутых VonC, позволит получить доступ через ваш прокси.