Click here to Skip to main content
Click here to Skip to main content

How to use Git and Github for Windows from within a Windows auth proxy network.

, 9 Jan 2013
Rate this:
Please Sign up or sign in to vote.
If you work at a company where you need to type in your user id to access sites on the internet and when you want to use git to push to a repository on the internet and it just hangs. 

If you work at a company where you need to type in your user id to access sites on the internet and when you want to use git to push to a repository on the internet and it just hangs. This post may help you out.

While git is a nice distributed version control system (dvcs), it was not written for windows.  A side effect of this fact is that it does support using proxy servers. But it really only supports using the kinds of proxy servers one would find in environments with non windows machines.  So, this is a case, were a little ingenuity goes a long way.  I credit Matt Hinze for figuring all of this out. Now it is standard practice when we need to connect to remote git repositories.

In order to make git access repositories on the internet through a windows auth proxy server we need to add a local proxy and configure git to use the local proxy.  This local proxy takes care of all the authentication so that git just works with the proxy and the proxy relays the data through the tightly controlled corporate proxy server.  Lets look at a diagram of how this works.

image

The light blue box represents your machine/workstation; the red box is the corporate network; the green box represents the internet. Since git cannot send ntlm credentials to the proxy, the network traffic just dies at the proxy.  With the local ntlmmapps proxy, git can communicate to it without having to send the username and password, and the ntlmmapps proxy adds that information so the corporate ntml proxy gets it’s credentials and passes the network traffic through to github.com.

To configure this its pretty simple.

  1. Download and unzip the ntmlmaps script & install python for windows (15 MB download).
  2. Open up the server.cfg in notepad and enter the values for your proxy and network.
    1. PARENT_PROXY:
    2. PARENT_PROXY_PORT:
    3. NT_DOMAIN:
    4. USER:
    5. PASSWORD:  (leave this blank, you can enter it when the proxy starts up)
    6. LISTEN_PORT:5865 ( remember this number you need it to configure git)
  3. Open the runserver.bat file in notepad and change the following line from
    before:c:\program files\python\python.exe” main.py
    after: C:\Python27python.exe main.py
  4. run the runserver.bat ( probably need to run it as administrator)
  5. type in your password
  6. configure git in a command line.
    1. git config –global http.proxy http://localhost:58665

Your done, this should now push all the git commands through your local proxy which will authenticate the network calls and pass through the git commands.

License

This article, along with any associated source code and files, is licensed under The Apache License, Version 2.0

About the Author

eric hexter
Architect
United States United States
I am an Architect for Dell.com on the Engineering Excellence team. I (co)Founded MvcContrib, Should, Solution Factory, and Pstrami open source projects. I have co-authored MVC 2 in Action, MVC3 in Action, and MVC 4 in Action. I am a Microsoft MVP.
 
I have founded some online conferences like aspConf, mvcConf, Community For MVC
Follow on   Twitter

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Mobile
Web01 | 2.8.140709.1 | Last Updated 9 Jan 2013
Article Copyright 2013 by eric hexter
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid