在Windows上使用Git,在HTTP代理后面,而不在磁盘上存储代理密码

ajd*_*ajd 33 git proxy http git-config

我在Windows上使用Git,在公司网络上,我使用基本身份验证的HTTP代理.出站SSH不起作用,因此我必须通过代理使用HTTPS.

我知道如何使用git config http.proxy配置设置http://[username]:[password]@[proxy]:[port].

但是,特别是因为这是一台共享机器,我宁愿不将我的密码存储在我的.gitconfig.另外,更改我.gitconfig使用git config命令会在我的bash历史记录中留下我的密码,所以即使我记得.gitconfig在会话结束时清除我,我几乎肯定会忘记清除我的历史记录.

我试过设置http.proxy没有密码,徒劳地希望我在尝试推/拉时提示我输入密码,但我只需要407代理身份验证.我在网上找到的所有信息似乎都忽略了以明文形式保存密码的问题.gitconfig,或者处理NTLM代理.

我很乐意在每次需要连接时输入我的代理详细信息 - 目前我能看到的最佳解决方案是编写一个包装脚本,提示我输入密码并在调用时将其设置为环境变量git.这是一个不错的解决方案,并且在脚本中为单个调用设置环境变量是否有任何安全隐患?最好是否有可用于此的内置设置或现有工具?

0xA*_*xA0 32

自从git 2.8.0

git config --global http.proxy http://[user]@proxyhost:port
git config --global credential.helper wincred
Run Code Online (Sandbox Code Playgroud)

  • 这是我见过的最好的解决方案,因为大多数其他建议涉及以明文形式存储密码或关闭“sslverify”。 (2认同)

Von*_*onC 25

您也可以使用环境变量(您只能为会话设置),而不是使用git设置,如下面的答案中所述:

set http_proxy=http://username:password@proxydomain:port
set https_proxy=http://username:password@proxydomain:port
set no_proxy=localhost,.my.company 
Run Code Online (Sandbox Code Playgroud)

因此,您的包装器脚本可以,而不是修改.gitconfig(并以纯文本形式保留您的密码)按需设置环境变量,仅适用于您当前的会话.