如何从代理(ISA-NTLM)后面更新Ruby Gems

时间:2020-03-05 18:38:15  来源:igfitidea点击:

我背后的防火墙正在仅NTLM模式下运行Microsoft ISA服务器。哈希是否成功通过Ruby SSPI gem或者其他方法来安装/更新其Ruby宝石?

...还是我只是懒惰?

注意:rubysspi-1.2.4不起作用。

这也适用于Ironig项目的一部分" igem"

解决方案

回答

一种解决方法是在本地计算机上安装http://apserver.sourceforge.net,对其进行配置并通过此代理运行gem。

  • 安装:只需下载apserver 097(而不是实验性098!)并解压缩即可。
  • 配置:编辑server.cfg文件,然后将MS代理的值放在" PARENT_PROXY"和" PARENT_PROXY_PORT"中。输入DOMAIN和USER的值。将PASSWORD留为空白(冒号之后),启动时会提示我们。
  • 运行apserver:cd aps097; python main.py
  • 运行Gems:gem installhttp-proxy http:// localhost:5865 /库

回答

我无法通过命令行开关使我的工作正常,但是仅通过设置我的HTTP_PROXY环境变量就可以做到。 (请注意,情况似乎很重要)。我有一个批处理文件,其中有这样的一行:

SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%

在到达这一行之前,我先设置了四个引用的变量。例如,如果我的用户名是" wolfbyte",密码是" secret",代理称为" pigsy",并且在端口8080上运行:

SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080

我们可能需要小心管理,因为它在机器会话中将密码以纯文本格式存储,但是我认为这不是太大的问题。

回答

我一直在使用cntlm(http://cntlm.sourceforge.net/)。配置与ntlmaps非常相似。

  • gem install --http-proxy http:// localhost:3128 name_of_gem

效果很好,并且还允许我将Ubuntu盒子连接到ISA代理。

查看http://cntlm.wiki.sourceforge.net/了解更多信息

回答

关于该主题的文章比比皆是,为了帮助其他人节省尝试不同解决方案的时间,这是我努力工作的最终结果。

目前,互联网上的三种解决方案是:
红宝石
审批者
中央电视台

rubysspi仅在Windows计算机AFAIK上运行,因为它依赖于Win32Api库。因此,如果我们在尝试通过代理运行的Windows机器上,则这是适合解决方案。如果我们使用的是Linux发行版,那么我们就不走运了。

apserver似乎是一个失败的项目。我见过的帖子中列出的链接指向sourceforge上的404页。我在sourceforge上搜索" apserver"没有任何结果。

我见过的cntlm的sourceforge链接重定向到http://cntlm.awk.cz/,但是超时。在sourceforge上进行搜索可以打开此链接,该链接可以正常工作:http://sourceforge.net/projects/cntlm/

下载并配置了cntlm之后,我已经设法通过代理安装了gem,因此这似乎是Linux发行版的最佳解决方案。

回答

对于Windows操作系统,我使用了Fiddler来解决此问题。

  • 从www.fiddler2.com安装/运行Fiddler
  • 运行宝石:
$ gem install --http-proxy http://localhost:8888 $gem_name