提问者:小点点

代理背后的GitHub Windows客户端


我试图让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

然后是几次失败的代理身份验证尝试的输出,所有这些都表示“凭据丢失”


共3个答案

匿名用户

将这些条目添加到您的“”中。用户目录中的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中起作用。