How to set up Git to get through a proxy
Solution 1
After much head bashing I finally stumbled across http://cntlm.sourceforge.net/. It's a proxy proxy that understands ntlm authentication.
I installed it and told it about the http proxy. Then pointed git at CNTLM and it all started working.
I found getting this going very frustrating so hopefully this will help someone else in the same situation.
Solution 2
I usually only need to set:
set http_proxy=http://<login_internet>:<password_internet>@aproxy:aport
set https_proxy=http://<login_internet>:<password_internet>@aproxy:aport
(note the https_proxy
refers to the same http, not https, proxy address)
See also "Cannot get Http on git to work".
Solution 3
You can put proxy information in your ~/.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
Solution 4
You are unlikely to be able to get ssh to github tunnelled through your proxy. However as github provides https urls for all their repositories and you can push to that you don't need ssh. If you already have a repository checked out, you can change the url used with
git remote set-url origin https://github.com/project/repo.git
git remote set-url --push origin https://[email protected]/project/repo.git
(skip the second line if you do not need push access). This, along with setting the environment variables (https_proxy) as mentioned by VonC will enable access via your proxy.
Programming Guy
Updated on November 14, 2020Comments
-
Programming Guy over 3 years
I want to connect to GitHub at work and need to get through the http proxy. I am able to get out for FTP using cURL using the command
curl -v -g --ftp-pasv --upload-file MYFILE --proxy PROXYADDRESS:PROXYPORT --proxy-ntlm --proxy-user WINDOWSDOMAIN\WINDOWSUSER:WINDOWSPASSWORD ftp://FTPUSER:FTPPASS@FTPURL/
I've so far not been able to provide equivalent settings for Git.
I tried following instructions on Using Github Through Draconian Proxies under cygwin.
I've got corkscrew installed and tried to SSH to GitHub
ssh github.com
or
ssh ssh.github.com
I get back
ssh: Could not resolve hostname ssh.github.com: hostname nor servname provided, or not known.
I've tried setting the http and https proxy.
Here is the output from 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
I've also run
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
I then try and clone and get.
$ 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
This looks to me like I'm failing authentication with the proxy. However I'm using the same login and pass that works for FTP via cURL.
How can I get connected?