Git通过摘要代理身份验证

Git通过摘要代理身份验证,git,proxy,Git,Proxy,我想通过代理服务器进行“git克隆”。问题是我的代理服务器使用摘要身份验证。所以我在git文档中既找不到帮助,也找不到已经制作的帮助 我翻遍谷歌搜索,找不到任何有用的结果 Thxs.Git似乎不支持经过身份验证的代理服务器。你可以检查;为了支持经过身份验证的代理服务器,它必须设置用户名和密码,但该字符串不会出现在该文件中 一个可能的解决方案是修复Git;向http.c添加更多配置参数,例如http.proxyuser,http.proxypass,以设置代理的用户名和密码,以及http.prox

我想通过代理服务器进行“git克隆”。问题是我的代理服务器使用摘要身份验证。所以我在git文档中既找不到帮助,也找不到已经制作的帮助

我翻遍谷歌搜索,找不到任何有用的结果


Thxs.

Git似乎不支持经过身份验证的代理服务器。你可以检查;为了支持经过身份验证的代理服务器,它必须设置用户名和密码,但该字符串不会出现在该文件中

一个可能的解决方案是修复Git;向
http.c
添加更多配置参数,例如
http.proxyuser
http.proxypass
,以设置代理的用户名和密码,以及
http.proxyauth
以设置身份验证方法,然后根据需要传入这些参数

如果您不想入侵Git源代码,可以设置自己的本地代理服务器,不需要身份验证,然后将其转发到需要身份验证的代理服务器。支持,尽管配置可能有点复杂;我发现这是为了演示这个设置,尽管我自己还没有验证它是否有效

编辑:不要紧,检查后,将请求转发给对等方时,它似乎只支持基本身份验证,而不支持摘要身份验证:

httpHeaderPutStrf(hdr_out, header, "Basic %s", base64_encode(orig_request->peer_login));
我还没有发现任何代理服务器可以将请求传递给另一个启用摘要身份验证的代理服务器;如果您能找到一个支持上游代理的摘要身份验证,我建议您使用它


否则,我建议使用不同于HTTP的协议;如果您需要身份验证,请使用
ssh:
,如果您只是从公共服务器上取下更改,请使用原始的
git:
协议。

如果您是通过ssh进行克隆,对密切相关的问题的答案看起来适合您的情况,但不是,它还不支持摘要身份验证,从CPAN使用。

通过将环境变量
http\u proxy
设置为
http://username:password@代理主机:80

然后,一个普通的ole
git克隆开始工作


(代理是一些公司Windows的东西,所以我的用户名实际上看起来像domain\username。花了一段时间才意识到我需要这个域。)

只是为了省去几分钟在谷歌上搜索Bennet的答案:

  • 清除旧设置:
    >git config--global--unset https.proxy

    >git config--global--unset http.proxy

  • 设置新设置:
    git配置--global https.proxyhttps://USER:PWD@代理。无论什么:80

  • >git config——全局http.proxyhttp://USER:PWD@代理。无论什么:80

  • 验证新设置:
    >git config--获取https.proxy

    >git config--获取http.proxy


  • 注意:当您进行验证时,您应该看到与您输入的值相同的值。

    请注意,Git确实支持http代理

    但是,这假设您已经安装了curl7.10.7+,这是Git在Git2.3.2+之前没有检查过的(2015年第一季度)

    这是由

    http:支持curl<7.10.7

    引入了对需要身份验证的http代理的支持,但它依赖于 在卷曲7.10.7中添加。
    这确保只有在libcurl能够支持代理身份验证时才启用代理身份验证

    使用

    git config--全局http.proxy

    或者更一般地说, 如果用户或密码有任何特殊字符,如“$\”等,则必须对其进行url编码,然后进行如下操作:%24%5C


    希望这会有所帮助,因为我通常对此很生气……

    是的,我建议您将Squid设置为本地代理服务器(在Git运行的同一台机器上),不进行身份验证,并让Squid连接到具有身份验证的代理服务器。然后将Git配置为使用本地Squid作为其代理服务器。Thxs非常适合您(尝试达到15个字符)。抱歉,我意识到Squid不支持这种用法;它只支持上游代理的基本身份验证,不支持摘要。添加了更多建议。您是否已向上游发送修补程序?如果你能的话,我会推荐的。甜甜的-为我做了一件好事。感谢您为我解决了这个长期存在的问题:)如果用户名包含\和怎么办?没问题。正如我提到的,我的用户名包含一个反斜杠。对我来说也很有用,但是。。。如果要从https存储库进行克隆,请同时设置环境变量“https\u proxy”。