我试图让Windows的GitHub客户端工作。我在公司代理和防火墙后面的公司Win 7 x64计算机上。继其他各种帖子并尝试环境变量和配置变量的多种组合后,我发现克隆和推送更新的唯一方法是使用HTTPS_PROXY环境变量,包括我的完整公司域用户ID和密码。
从安全角度来看,这是不可接受的。有没有其他方法可以让它发挥作用?
以下方面发挥了作用:
HTTPS_PROXY
的环境变量,其值http://[domain]\[userid]:[password]@someproxy.mycorp.com:8080
以下情况不起作用:
HTTPS\u代理中省略用户id和密码
变量HTTP\u PROXY
(noS
)的环境变量http。将变量代理到全局配置文件(.gitconfig
)
https。全局配置文件的代理
变量在所有情况下,GitHub客户端仍然无法识别代理:文件日志的内容。txt启动时始终显示以下内容:
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy
然后是几次失败的代理身份验证尝试的输出,所有这些都表示“凭据丢失”
将这些条目添加到您的“”中。用户目录中的gitconfig文件(转到%USERPROFILE%):
[http]
proxy = http://<proxy address>:<proxy port>
[https]
proxy = https://<proxy address>:<proxy port>
如果您不想以明文形式存储密码,我会使用一个本地代理转发器,如CNTLM,它允许您通过它引导所有流量,并可以存储散列的密码。
与原始问题不同,如果您不在乎密码是否为纯文本,请添加以下内容:
[http]
proxy = http://<username>:<password>@<proxy address>:<proxy port>
[https]
proxy = https://<username>:<password>@<proxy address>:<proxy port>
尝试了以上所有方法,但没有成功,唯一帮助我的是CNTLM-http://cntlm.sourceforge.net/.
安装并运行cntlm-H,对corp代理进行身份验证,编辑cntlm.ini输出cntlm的文件,重启windows服务。更新. gitconfig与:
[https] proxy = localhost:3128
[http] proxy = localhost:3128
现在cntlm将完成所有身份验证,您将能够在公司代理后面使用GitHub(和Dropbox)。至少直到下一次密码更改:)(比做cntlm-H的东西再次)
我能够使GitHub Shell与我们的公司代理一起工作。我正在启动GitHub Shell并执行以下命令:
export http_proxy=http://<username>:<password>@<corporate proxy>:3128
我真的很想让GUI也能工作。但我不想设置包含公司凭据信息的Windows全局环境变量。
奇怪的是,GitHub GUI客户端能够连接到GitHub进行用户身份验证,但唯一的问题是从GitHub中克隆、拉入和推入项目。问题似乎出在git实现上。我能够将git配置为通过我们的代理运行,而无需将我的凭据放入git全局设置,并且它在执行拉或推请求时请求我的凭据。但这只在Git Shell中起作用。