ajd ajd - 10 days ago 7
Git Question

Using Git on Windows, behind an HTTP proxy, without storing proxy password on disk

I'm using Git on Windows, on a corporate network where I'm behind an HTTP proxy with Basic authentication. Outbound SSH doesn't work, so I have to use HTTPS through the proxy.

I'm aware of how to use

git config http.proxy
to configure the settings as
http://[username]:[password]@[proxy]:[port]
.

However, particularly as this is a shared machine, I'd rather not store my password in my
.gitconfig
. Additionally, changing my
.gitconfig
using the
git config
command leaves my password in my bash history, so even if I remember to clear my
.gitconfig
at the end of the session, I'll almost certainly forget to clear my history as well.

I've tried setting
http.proxy
without a password, in the vain hope that I'd get a prompt asking me for my password when I try to push/pull, but I only get a 407 Proxy Authentication Required. All the information I've found online seems to either ignore the issues with having the password saved in plaintext in
.gitconfig
, or deals with NTLM proxies.

I'm quite happy to type my proxy details every time I need to connect - the best solution I can see at the moment is writing a wrapper script that will prompt for my password and set that as an environment variable when calling
git
proper. Is this a decent solution, and are there any security implications to setting an environment variable for a single call in a script? Preferably, are there any built-in settings or existing tools that I can use for this?

Answer

Instead of using git setting, you can also use environment variable (that you can set just for your session), as described in this answer:

set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
set no_proxy=localhost,.my.company 

So your wrapper script could, instead of modifying the .gitconfig (and leaving your password in plain text) set environment variables on demand, just for your current session.

Comments