【问题标题】:gem install watir - ERROR: While executing gem (Net::HTTPServerException) 407 "Proxy Authentication Required"gem install watir - 错误:执行 gem (Net::HTTPServerException) 407 “需要代理身份验证”
【发布时间】:2020-02-27 19:14:22
【问题描述】:

这一直让我发疯 - 在过去的三天里,我到处寻找解决方案......但到目前为止没有任何效果。

周一,我在尝试安装 watir 时遇到此错误:

C:\Users\dan>gem install watir 
ERROR: Could not find a valid gem 'watir' (>= 0), here is why: 
Unable to download data from https://rubygems.org/ - timed out 
(https://api.rubygems.org/specs.4.8.gz) 

所以认为这是防火墙/代理错误。为了尝试绕过它,我使用了--http-proxy 选项:

C:\Ruby24-x64\bin>gem install watir --http-proxy http://my.awesome.proxy:port
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"

然后我尝试使用定义的用户名和密码运行它,但我读过如果我的密码包含特殊字符(确实如此),它将无法工作:

C:\Ruby24-x64\bin>gem install --http-proxy http://myusername:mypassword@my.awesome.proxy:port watir
ERROR: While executing gem ... (Net::HTTPServerException)
407 "Proxy Authentication Required"

然后我尝试使用 set 选项为 HTTP 和 HTTPS 设置代理、用户名和密码,如下所示:

set HTTP_PROXY=my.awesome.proxy:port
set HTTP_PROXY_USER=myusername
set HTTP_PROXY_PASS=mypassword
set HTTPS_PROXY=my.awesome.proxy:port
set HTTPS_PROXY_USER=myusername
set HTTPS_PROXY_PASS=mypassword

...但我仍然收到 407 错误。有什么想法吗?

我在 Windows 10 上,我的 gem 环境详细信息如下:

C:\Ruby24-x64\bin>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.7.2
  - RUBY VERSION: 2.4.2 (2017-09-14 patchlevel 198) [x64-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby24-x64/lib/ruby/gems/2.4.0
  - USER INSTALLATION DIRECTORY: C:/Users/dan/.gem/ruby/2.4.0
  - RUBY EXECUTABLE: C:/Ruby24-x64/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby24-x64/bin
  - SPEC CACHE DIRECTORY: C:/Users/dan/.gem/specs
  - SYSTEM CONFIGURATION DIRECTORY: C:/ProgramData
  - RUBYGEMS PLATFORMS:
    - ruby
    - x64-mingw32
  - GEM PATHS:
     - C:/Ruby24-x64/lib/ruby/gems/2.4.0
     - C:/Users/dan/.gem/ruby/2.4.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

@Beartech:

C:\Ruby24-x64>ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION'
OpenSSL 1.0.2l  25 May 2017

MINGW64 ~
$ openssl s_client -host rubygems.org -port 443
connect: Connection timed out
connect:errno=116

【问题讨论】:

  • 您可以运行ruby -ropenssl -e 'puts OpenSSL::OPENSSL_VERSION' 并在您的问题中发布输出,也可以运行openssl s_client -host rubygems.org -port 443 并在您的问题中发布吗?
  • 另外,如果您在浏览器中访问https://api.rubygems.org/specs.4.8.gz,它会下载.gz 文件吗?还是它会给你一个证书警告或错误?
  • 嗨@Beartech,很抱歉延迟回复。我在问题中添加了更多信息。而且,如果我转到 https://api.rubygems.org/specs.4.8.gz,它会下载 .gz 文件 - 尽管我无法使用 --local 选项安装它,因为它需要连接到给我相同的 407 响应的网络。
  • 好吧,我猜“简单”的答案是将您的密码更改为没有安装特殊字符的密码,然后再改回来。
  • 您的代理是否使用 NTLM 身份验证?有关 NTLM 身份验证的问题,请参阅此线程:ruby-forum.com/topic/163889

标签: ruby proxy permissions rubygems


【解决方案1】:

终于解决了!一位同事对 Atom 的插件列表有类似的代理问题,因此为我指明了正确的方向。

命令是:

gem install --http-proxy http://{domain}%5C{username}:{password}@{proxy.address}:{port}/ watir 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多