我在
Windows上使用
Git,在公司网络中,我使用基本身份验证的HTTP代理.出站SSH不起作用,所以我必须通过代理使用HTTPS.
我知道如何使用git config http.proxy来将设置配置为http:// [username]:[password] @ [proxy]:[port].
但是,特别是因为这是一个共享机器,我宁可不将我的密码存储在我的.gitconfig中.此外,使用git config命令更改.gitconfig会将我的密码保存在我的bash历史记录中,因此即使我记得在会话结束时清除.gitconfig,我几乎肯定会忘记清除我的历史记录.
我尝试设置http.proxy没有密码,希望在尝试推/拉时,我会得到一个提示,询问我的密码,但是我只需要407代理验证.我在网上找到的所有信息似乎都忽略了使用.gitconfig中明文保存密码或处理NTLM代理的问题.
我很高兴在每次需要连接时键入代理详细信息 – 目前我可以看到的最佳解决方案是编写一个包装器脚本,它将提示输入密码,并将其设置为调用git时的环境变量.这是一个体面的解决方案,并且在脚本中为单个调用设置环境变量是否有任何安全隐患?最好是有什么内置的设置或现有的工具可以用于此?
您也可以使用环境变量(您可以为您的会话设置),而不是使用git设置,如
this answer所述:
set http_proxy=http://username:password@proxydomain:port set https_proxy=http://username:password@proxydomain:port set no_proxy=localhost,.my.company
因此,您的包装脚本可以,而不是修改.gitconfig(并以纯文本形式保留密码)根据需要设置环境变量,仅适用于当前会话.