在NTLM代理后面安装Ruby gem

时间:2014-03-10 08:23:16

标签: ruby gem ntlm

我正在尝试在NTLM代理后面安装ruby gems。我的操作系统是Windows 7.这些都是我尝试过的解决方案,而不是它们的工作原理。

使用HTTP_PROXY:

set HTTP_PROXY=http://domain\user:pass@proxy.company.com:8080
set HTTP_PROXY=http://domain\\user:pass@proxy.company.com:8080
set HTTP_PROXY=http://domain\\user:pass@proxy.company.com:8080/

以上所有响应错误的URI

set HTTP_PROXY=http://user:pass@proxy.company.com:8080

响应:错误响应需要代理身份验证407

使用Ruby中的-p或--http-proxy参数

gem install -p "http://domain\user:pass@proxy.company.com:8080" rake

gem install -p "http://domain\\user:pass@proxy.company.com:8080" rake

gem install -p http://domain\user:pass@proxy.company.com:8080 rake

gem install -p http://domain\\user:pass@proxy.company.com:8080 rake

gem install --http-proxy "http://domain\user:pass@proxy.company.com:8080" rake

gem install --http-proxy "http://domain\\user:pass@proxy.company.com:8080" rake

gem install --http-proxy http://domain\user:pass@proxy.company.com:8080 rake

gem install --http-proxy http://domain\\user:pass@proxy.company.com:8080 rake

所有回复:无效参数

Try all the options above without the domain or encode the \ to %5C will receive reponse: bad response Proxy Authentication Required 407

在这些命令或设置中我错过了什么?

3 个答案:

答案 0 :(得分:1)

您可以使用cntlm http://cntlm.sourceforge.net/,这样您就拥有了一个不需要身份验证的本地代理(它依次连接到ntlm代理)。

另外:How do I update Ruby Gems from behind a Proxy (ISA-NTLM)

答案 1 :(得分:1)

似乎暂时没有修复NTLM代理后面的工作rubygems:https://github.com/rubygems/rubygems/issues/360。 无论如何,我仍然没有办法解决它,唯一的解决方案是下载一个gem(处理所有依赖项)并在本地安装(从保存gem的文件夹内):

gem install your_gem_name --local

答案 2 :(得分:0)

我偶然发现了一个更简单,更安全的解决方案,它不仅适用于git,也适用于任何基于命令的安装程序

  • 红宝石中的Rubygems
  • 节点中的npm

从命令行运行所有流量的一个解决方案代表了真实性。

不要在用户中公开您的密码:password @ domain:port format

<强>解决方案:

下载Fiddler,它有一种内置方法可以为所有请求添加身份验证标头。

运行菜单规则 - &gt;自动验证(勾选)

然后是git

git config --global http.proxy http://localhost:8888
git config --global https.proxy http://localhost:8888

多数民众赞成!