【发布时间】:2010-01-18 18:10:13
【问题描述】:
我想通过代理服务器进行“git clone”。问题是我的代理服务器使用摘要身份验证。所以我既不能在 git 文档中找到,也不能帮助那个已经做过的人。
我翻遍了谷歌搜索,但找不到任何有用的结果。
谢谢。
【问题讨论】:
我想通过代理服务器进行“git clone”。问题是我的代理服务器使用摘要身份验证。所以我既不能在 git 文档中找到,也不能帮助那个已经做过的人。
我翻遍了谷歌搜索,但找不到任何有用的结果。
谢谢。
【问题讨论】:
只是为了节省在谷歌上搜索 Bennet 的答案的时间:
>git config --global --unset https.proxy>git config --global --unset http.proxy设置新设置:>git config --global https.proxy https://USER:PWD@proxy.whatever:80>git config --global http.proxy http://USER:PWD@proxy.whatever:80
验证新设置:>git config --get https.proxy>git config --get http.proxy
注意:当您验证时,您应该会看到您输入的相同值。
【讨论】:
通过将环境变量 http_proxy 设置为 http://username:password@proxyhost:80,我能够通过经过身份验证的代理进行 git 克隆
然后一个普通的 ole git clone 起作用了。
(代理是一些公司的 Windows 东西,所以我的用户名实际上看起来像域\用户名。花了一段时间才意识到我需要域。)
【讨论】:
请注意,自 Git 1.7.10, Apr. 2012, commit dd61399 以来,Git 确实支持 http 代理。
但是,假设您安装了 curl 7.10.7+,这是 Git 在 Git 2.3.2+(2015 年第一季度)之前没有检查的内容
这是由Tom G. Christensen (tgc)commit 1c2dbf2 修复的
http: 支持 curl
Commit dd61399 引入了对需要身份验证的 http 代理的支持,但它依赖于
CURL_PROXYAUTH选项,该选项是 在 curl 7.10.7 中添加。
这确保只有在 libcurl 支持时才启用代理身份验证。
【讨论】:
使用
git config --global http.proxy
或者更一般地说, 如果用户或密码有任何特殊字符,如“$\”等,你必须对其进行 url 编码,然后类似于:%24%5C
希望这会有所帮助,因为我通常对此很生气......
【讨论】:
Git 似乎不支持经过身份验证的代理服务器。可以查看http.c from the git.git repository;为了完全支持经过身份验证的代理服务器,它必须设置 CURL_PROXYUSERPWD 来设置用户名和密码,但该字符串不会出现在该文件中。
一种可能的解决方案是修复 Git;在http.c 中添加一些配置参数,例如http.proxyuser、http.proxypass,用于设置代理的用户名和密码,http.proxyauth 用于设置认证方式,然后将它们作为适当的@传入987654323@.
如果您不想破解 Git 源代码,您可以设置自己的本地代理服务器,无需身份验证,然后从该代理服务器转发到需要身份验证的代理服务器。 Squid支持this mode of operation,虽然配置可能有点复杂;我发现 an example configuration 声称要演示此设置,但我自己尚未验证它是否有效。
编辑:没关系,在检查Squid source code 之后,它似乎只支持基本身份验证,而不支持摘要身份验证,将请求转发给对等点:
httpHeaderPutStrf(hdr_out, header, "Basic %s", base64_encode(orig_request->peer_login));
我还没有找到任何代理服务器可以将请求传递给另一个启用了摘要身份验证的代理;如果你能找到一个支持上游代理的摘要身份验证,我建议使用它。
否则,我建议使用与 HTTP 不同的协议;如果您需要身份验证,请使用 ssh:,如果您只是从公共服务器上拉下更改,请使用原始的 git: 协议。
【讨论】:
如果您通过 SSH 进行克隆,则密切相关的问题 How do I use GitHub through harsh proxies? 的答案看起来适合您的情况,但不要使用尚不支持摘要式身份验证的 Corkscrew,而是使用来自 CPAN 的 tunnel-auth.pl。
【讨论】: