GitHub Windows客户端代理

Jos*_*nig 90 proxy github github-for-windows

我正在尝试让Windows的GitHub客户端工作.我在公司代理和防火墙后面的企业Win 7 x64计算机上.通过各种其他帖子并尝试环境变量和配置变量的多种组合,我发现克隆和推送更新工作的唯一方法是使用HTTPS_PROXY环境变量,包括我的完整公司域用户ID和密码.

从安全角度来看,这是不可接受的.有没有其他方法让这个工作?

补充说明:

以下工作:

  • 添加所谓的环境变量HTTPS_PROXY与值http://[domain]\[userid]:[password]@someproxy.mycorp.com:8080

下面也没有工作:

  • HTTPS_PROXY变量中省略用户标识和密码
  • 使用一个名为HTTP_PROXY(no S)的环境变量
  • http.proxy变量添加到全局配置文件(.gitconfig)
  • https.proxy变量添加到全局配置文件

在所有情况下,GitHub 客户端仍然无法识别代理:文件的内容在启动时TheLog.txt 始终显示以下内容:

[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Proxy information: (None)
[time]|INFO|thread:4|GitHub.Helpers.StartupLogger|Couldn't fetch creds for proxy
Run Code Online (Sandbox Code Playgroud)

接下来是几次失败的代理身份验证尝试的输出,所有这些都表示"缺少证书".

Sog*_*ger 129

将这些条目添加到用户目录中的".gitconfig"文件中(转到%USERPROFILE%):

[http]
    proxy = http://<proxy address>:<proxy port>

[https]
    proxy = https://<proxy address>:<proxy port>
Run Code Online (Sandbox Code Playgroud)

如果您不想以明文形式存储密码,我会使用像CNTLM这样的本地代理转发器,它允许您引导所有流量并可以存储密码哈希.


与原始问题不同,如果您不在乎密码是否是纯文本,请添加以下内容:

[http]
    proxy = http://<username>:<password>@<proxy address>:<proxy port>

[https]
    proxy = https://<username>:<password>@<proxy address>:<proxy port>
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用的是CNTLM,请确保按照建议将代理指向"127.0.0.1"而不是"localhost".在Windows中,似乎localhost首先指向IPv6地址,CNTLM不会收听该地址.因此,git将等到超时(几分钟),然后切换到IPv4地址. (4认同)

Ant*_*ton 14

尝试了上面的一切 - 并没有成功,只有帮助我的是CNTLM - http://cntlm.sourceforge.net/.

安装它并运行cntlm -H,而不是对corp proxy进行身份验证,使用cntlm的输出编辑cntlm.ini文件,重新启动Windows服务.使用以下命令更新.gitconfig:

[https] proxy = localhost:3128
[http] proxy = localhost:3128
Run Code Online (Sandbox Code Playgroud)

现在cntlm将执行所有身份验证,并且您将能够在corp代理后面使用GitHub(和Dropbox,btw).至少到下一次密码更改:)(比再做cntlm -H东西)

  • 如果git clone,fetch或pull等远程操作需要很长时间才能完成,请尝试将.gitconfig切换为:[https] proxy = 127.0.0.1:3128 [http] proxy = 127.0.0.1:3128 (2认同)

edu*_*inn 8

我能够使GitHub Shell与我们的公司代理一起工作.我正在启动GitHub Shell并执行以下命令:

export http_proxy=http://<username>:<password>@<corporate proxy>:3128
Run Code Online (Sandbox Code Playgroud)

我真的很想让GUI工作.但我不想设置包含公司凭据信息的Windows全局环境变量.

奇怪的是,GitHub GUI客户端能够连接到GitHub进行用户身份验证,但唯一的问题是从GitHub克隆,拉动和推送项目.好像是git实现的问题.我能够配置git来运行我们的代理而不将我的凭据放在git全局设置中,并且它在执行pull或push请求时询问我的凭据.但这只适用于Git Shell.


小智 7

如果您在企业中使用GitHub for Windows,那么很可能您是一个糟糕的企业防火墙/代理.GitHub for Windows在其GUI中还没有用于设置选项的代理参数.

要配置GitHub for Windows以使用公司代理,请编辑通常位于C:\ Users\.gitconfig或C:\ Documents&Settings\.gitconfig中的.gitconfig文件.

关闭GitHub for Windows; 在.gitconfig中,只需添加即可

[https] proxy = proxy.yourcompany.com:port