在Windows上配置Git以使用NTLM代理身份验证

Gre*_*ill 19 git proxy ntlm msysgit

我正在尝试从需要NTLM身份验证的代理后面的Windows机器访问Github上的存储库.SSH和git://协议都不是直接可用的,所以我试图通过代理使用HTTPS.

没有密码NTLM代理的帮助下?我已经能够curl使用msysgit提供的二进制文件与代理一起使用:

curl -U : --proxy-ntlm --proxy xxx.xxx.xx.xx:8080 https://github.com
Run Code Online (Sandbox Code Playgroud)

这是成功的并返回Github主页.

但是,我发现了一篇来自2010年2月Proxying Git的文章(强调我的):

不幸的是,curl似乎总是使用代理进行基本身份验证.如果您的代理需要其他东西,可能是Windows网络的NTLM,那么您就遇到了问题.Curl用于处理所有http传输细节,这确实支持NTLM身份验证方法,但我知道没有方法可以将必要的选项传递给curl.Git通过其库绑定使用curl,因此不应该只使用包装器脚本替换curl可执行文件.

我知道core.gitproxyGit配置中的选项,但似乎只适用于git://协议.同样,该http.proxy选项设置代理的地址,但无法提供适当的卷曲选项.

Ric*_*sen 16

试试Cntlm.它是一个代理,设计用于不理解NTLM的程序(例如,Git)和需要NTLM的代理.它执行NTLM身份验证,以便应用程序不必.

我没有用它,所以我不知道它有多好用.


jha*_*amm 5

我使用了CNTLM身份验证代理(虽然这很可能也适用于ntlmaps)所以git可以工作并添加http和https代理 http:// localhost:3218.Git需要很长时间来执行任何远程操作,如获取,拉取或克隆.

解决这个问题的方法是切换到使用它: http:// 127.0.0.1:3218

在.gitconfig中更改后,它的工作速度要快得多.

注意:删除http://和127.0.0.1之间的空格

例如:

[http] proxy = http:// 127.0.0.1:3128 [https] proxy = http:// 127.0.0.1:3128