Как настроить Git, чтобы пройти через прокси - PullRequest
29 голосов
/ 12 октября 2011

Я хочу подключиться к 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.

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

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 ]

29 голосов
/ 19 октября 2011

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

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

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

12 голосов
/ 12 октября 2011

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

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

6 голосов
/ 24 октября 2011

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

/ дома / USR / .curlrc

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

2 голосов
/ 12 октября 2011

Вы вряд ли сможете получить туннель от ssh до github через ваш прокси. Однако, поскольку github предоставляет URL-адреса https для всех их репозиториев, вы можете указать, что вам не нужен 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, разрешит доступ через ваш прокси.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...