Does git clone work through NTLM proxies?

Cloning works for me but only over HTTP (since our corporate firewall blocks the ssh/git protocols): $ export http_proxy="username:password@proxy:port/" $ git clone github.com/sunlightlabs/fiftystates_site.git" rel="nofollow">github.com/sunlightlabs/fiftystates_site... fifty Initialized empty Git repository in /home/user/fifty/. Git/ got e15f5192b923d8e87abaeb9406d0f4d80403da09 walk e15f5192b923d8e87abaeb9406d0f4d80403da09 got a78b792191f1cf5e961753dcfe05e9c809bdb0ed got 76e6e86e72a0f998f7663da69ca49c457a302e27 walk 76e6e86e72a0f998f7663da69ca49c457a302e27 got 35b68a3b876fb90e73ba7a7eb51432e825ef2aa3 Github suggests cloning via git://github. Com but you have to change it to URL2 manually Edit: I'm using git version 1.5.6.3 Hope that helps!

Cloning works for me but only over HTTP (since our corporate firewall blocks the ssh/git protocols): $ export http_proxy="username:password@proxy:port/" $ git clone github.com/sunlightlabs/fiftystates_site... fifty Initialized empty Git repository in /home/user/fifty/. Git/ got e15f5192b923d8e87abaeb9406d0f4d80403da09 walk e15f5192b923d8e87abaeb9406d0f4d80403da09 got a78b792191f1cf5e961753dcfe05e9c809bdb0ed got 76e6e86e72a0f998f7663da69ca49c457a302e27 walk 76e6e86e72a0f998f7663da69ca49c457a302e27 got 35b68a3b876fb90e73ba7a7eb51432e825ef2aa3 ... Github suggests cloning via git://github. Com/... but you have to change it to github.com/...Manually.Edit: I'm using git version 1.5. 6.3.Hope that helps!

(That is, Microsoft non-standard stuff). – AndreaG Nov 23 '09 at 17:08 Yes, the proxy we have is an NTLM proxy for sure. HTTP headers: HTTP/1.1 407 Proxy Authentication Required Proxy-Authenticate: NTLM Proxy-Authenticate: BASIC realm="XYZ_NTLM_REALM" ... – lemonad Nov 23 '09 at 18:07 It looks your proxy likes Proxy-Authenticate: BASIC too.

Thank you for your test of the url. – AndreaG Nov 24 '09 at 15:38 Ah, you're absolutely right. Sorry for not spotting that difference!

So this means you're stuck? – lemonad Nov 24 '09 at 21:49.

AndreaG (in a comment above) has the only acceptable answer to this problem that I can find. It seems that Git just won't work with NTLM proxies even though it really should because cURL (which it uses underneath) does work just fine. Why this issue can't be fixed I have no idea.It seems to be a fairly common issue.

The solution, in full then, is to use ntlmaps to act as a proxy to the proxy. All you need to do is to download the latest version of the app from: ntlmaps.sourceforge.net/ Change the config file to include your authentication and proxy details and then set the proxy to be your new local one: git config --global http. Proxy localhost:5865 I can confirm that it works just fine.

Not only that you can use it for any app that requires NTLM authentication but does not provide full NTLM support.

This worked for me. – locka Aug 17 at 13:26.

I've been using ntlmaps and been having good results getting through windows/NT proxies: ntlmaps.sourceforge.net/ The git configuration is: git config --global http. Proxy localhost:5865.

Since this was a question I kept finding on my search to make this work, I'll add my answer here. I needed to get access to a github. Com hosted repo working via an http(s) proxy (that requires NTLM authentication) on one network, and have it still work when on a normal internet connection, from our Mac OS X dev machines.

Here is how I made it work. This won't work for every git hosting provider, but I'm posting in case it helps you figure this out. This is also only for Mac OS X, but if you figure out how to run something on network change for your system, the rest should follow.

I had to use git clone git@github. Com:user/repo. Git after setting up ssh access as normal (help.github.com/mac-set-up-git/).

I then needed to setup a local http(s) proxy that handles the NTLM authentication, such as ntlmaps, cntlm or Authoxy. I've tested with Authoxy. I'll leave configuring this to you, because you'll need to know your own proxy details.

You'll also need corkscrew, which is just sudo port install corkscrew if you have MacPorts. Then I added the following to ~/. Ssh/config: Host github.com.

Disabled User git HostName ssh.github.Com Port 443 ProxyCommand /opt/local/bin/corkscrew localhost 6574 %h %p Where 6574 is the TCP port I set Authoxy to listen on. Now I created a script that tries to find the http(s) proxy server, and configures the ssh setup according to what it finds, at /usr/local/bin/locationchanger: #! /bin/sh set -o nounset set -o errexit sleep 10 # allow for WiFi to actually connect.

# if we can find the proxy server, then use it. If! Host proxy.internal.

Network; then echo "Proxy server not found, clearing http(s) proxy"; sed -i '. Backup' -E 's/^Host github. Com$/Host github.com.

Disabled/' "$HOME/. Ssh/config" else echo "Proxy server found, setting http(s) proxy"; sed -i '. Backup' -E 's/^Host github.com.

Disabled$/Host github. Com/' "$HOME/. Ssh/config" fi echo "Done."

Don't forget to chmod +x /usr/local/bin/locationchanger. Now create ~/Library/LaunchAgents/LocationChanger. Plist: Label tech.inhelsinki.nl.

Locationchanger ProgramArguments /usr/local/bin/locationchanger WatchPaths /Library/Preferences/SystemConfiguration And then launchctl load ~/Library/LaunchAgents/LocationChanger.plist. This launchd job will run whenever the network changes. If it can find your internal network http(s) proxy server, it will make ssh use corkscrew to work through Authoxy, which will handle working through the company proxy.

If it can't find the proxy server, it will disable the special ssh config, and you're working just like normal. Now our team doesn't have to think about network switching anymore.

Git uses libcurl, the underlying library that curl itself uses.

You can also use cntlm, cntlm.sourceforge.net/ A solution similar to ntlmaps but written in pure C. It works in the same way as ntlmaps by creating a local proxy server (127.0.0.1) at a port (3128 default) on your machine. This new locally created proxy server does not require any authentication and thus can be used with any application that supports http proxy.It can also create a local socks proxy if you need one.

The main advantage over ntlmaps which is written in python, is that cntlm has very low CPU and RAM usage, typically.

I cant really gove you an answer,but what I can give you is a way to a solution, that is you have to find the anglde that you relate to or peaks your interest. A good paper is one that people get drawn into because it reaches them ln some way.As for me WW11 to me, I think of the holocaust and the effect it had on the survivors, their families and those who stood by and did nothing until it was too late.

Related Questions