我后面的防火墙以ntlm模式运行Microsoft ISA服务器。哈希任何人成功地获得他们的Ruby宝石安装/更新通过Ruby SSPI宝石或其他方法?
... 还是我太懒了?
注意:rubysspi-1.2.4不起作用。
这也适用于“igem”,IronRuby项目的一部分
我后面的防火墙以ntlm模式运行Microsoft ISA服务器。哈希任何人成功地获得他们的Ruby宝石安装/更新通过Ruby SSPI宝石或其他方法?
... 还是我太懒了?
注意:rubysspi-1.2.4不起作用。
这也适用于“igem”,IronRuby项目的一部分
当前回答
我不能从命令行开关得到我的工作,但我已经能够通过设置我的HTTP_PROXY环境变量来做到这一点。(注意,大小写似乎很重要)。我有一个批处理文件,其中有这样一行:
SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%
显然,我在这条直线之前设置了四个参考变量。例如,如果我的用户名是“wolfbyte”,我的密码是“secret”,我的代理名为“pigsy”,并在端口8080上运行:
SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080
您可能要小心如何管理它,因为它将密码以纯文本的形式存储在机器的会话中,但我认为这应该不是一个太大的问题。
其他回答
这完全有效:
gem install --http-proxy http://COMPANY.PROXY.ADDRESS $gem_name
我尝试了以上所有的解决方案,但是没有一个有效。如果你在linux/macOS上,我强烈建议通过ssh隧道使用tsocks。要使这个设置正常工作,您需要一台可以通过ssh登录的机器,此外还需要安装一个名为tsocks的程序。
这里的思想是通过SSH (socks5代理)创建一个动态隧道。然后我们配置tsocks以使用此隧道并启动我们的应用程序,在本例中:
tsocks gem install ...
或者考虑rails 3.0:
tsocks bundle install
更详细的指南可以在下面找到:
http://blog.byscripts.info/2011/04/bypass-a-proxy-with-ssh-tunnel-and-tsocks-under-ubuntu/
尽管是为Ubuntu编写的,但这个过程应该适用于所有基于Unix的机器。Windows上tsocks的替代方案是FreeCap (http://www.freecap.ru/eng/)。windows上可行的SSH客户机称为putty。
关于这个话题的帖子很多,为了帮助其他人节省尝试不同解决方案的时间,这里是我花几个小时修补的最终结果。
目前互联网上有三个解决方案: rubysspi apserver cntlm
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发行版的最佳解决方案。
我不能从命令行开关得到我的工作,但我已经能够通过设置我的HTTP_PROXY环境变量来做到这一点。(注意,大小写似乎很重要)。我有一个批处理文件,其中有这样一行:
SET HTTP_PROXY=http://%USER%:%PASSWORD%@%SERVER%:%PORT%
显然,我在这条直线之前设置了四个参考变量。例如,如果我的用户名是“wolfbyte”,我的密码是“secret”,我的代理名为“pigsy”,并在端口8080上运行:
SET HTTP_PROXY=http://wolfbyte:secret@pigsy:8080
您可能要小心如何管理它,因为它将密码以纯文本的形式存储在机器的会话中,但我认为这应该不是一个太大的问题。
对于任何使用SSH隧道的人;你可以创建一个使用SOCKS代理的gem命令版本:
Install socksify with gem install socksify (you'll need to be able to do this step without proxy, at least) Copy your existing gem exe cp $(command which gem) /usr/local/bin/proxy_gem Open it in your favourite editor and add this at the top (after the shebang) require 'socksify' if ENV['SOCKS_PROXY'] require 'socksify' host, port = ENV['SOCKS_PROXY'].split(':') TCPSocket.socks_server = host || 'localhost' TCPSocket.socks_port = port.to_i || 1080 end Set up your tunnel ssh -D 8123 -f -C -q -N user@proxy Run your gem command with proxy_gem SOCKS_PROXY=localhost:8123 proxy_gem push mygem