Как настроить 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:FTPPASS@FTPURL/

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

Я попытался следовать инструкциям по использованию Github через Draconian Proxies под Cygwin.

Я установил штопор и попытался подключиться к GitHub по SSH

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
user.email=someemail@gmail.com
github.user=ProggerPete
github.token=shouldprobablykeepthissecret
http.proxy=http://somedomain\someuser:somepass@10.167.116.142:80
https.proxy=http://somedomain\someuser:somepass@10.167.116.142:80

Я тоже бегаю

export https_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
export http_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
set https_proxy=http://somedomain\someuser:somepass@10.167.116.142:80
set http_proxy=http://somedomain\someuser:somepass@10.167.116.142:80

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

$ git clone https://ProggerPete@github.com/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.

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

4 ответа

Решение

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

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

Мне было очень неприятно, потому что это поможет кому-то еще в такой же ситуации.

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

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".

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

/home/usr/.curlrc

proxy = proxy.proxyhost.com:8443
proxy-user = user: pass
proxy-ntlm = true
noproxy = localhost, 127.0.0.1, intraweb.company.com

Вы вряд ли сможете получить доступ через 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://YOURNAME@github.com/project/repo.git

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

Другие вопросы по тегам