Как настроить 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.
Как я могу подключиться?
Ответы
Ответ 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, позволит получить доступ через ваш прокси.