Как настроить 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, разрешит доступ через ваш прокси.