Ruby 设置net ssh连接时支持的\u类型错误

Ruby 设置net ssh连接时支持的\u类型错误,ruby,cygwin,net-ssh,Ruby,Cygwin,Net Ssh,以前有人见过这个错误吗?我在源代码中找不到任何支持的\u类型的引用 irb(main):013:0>connection=Net::SSH.start('host','user',:password=>password')) NameError:未初始化的常量Net::SSH::KnownHosts::受支持的\u类型 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:117:in'keys_for' 来

以前有人见过这个错误吗?我在源代码中找不到任何支持的\u类型的引用

irb(main):013:0>connection=Net::SSH.start('host','user',:password=>password')) NameError:未初始化的常量Net::SSH::KnownHosts::受支持的\u类型 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:117:in'keys_for' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105:“每行”中 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105:in'keys_for' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:在“开放”中 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:in'keys_for' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:in'search_in' from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:在“地图”中 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33:in'search_in' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:27:“搜索” 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:237:in“prepare\u preferred\u algorithms!” from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:120:in'initialize' from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:in'new' from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:在“初始化”中 from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in'new' from/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in'start' 来自(irb):13
从/usr/lib/ruby/site_ruby/1.8/rubygems/specification.rb:1313这似乎是5月24日更新2.5.0或2.5.1到net ssh gem时引入的问题。您可以在此处找到受支持的常量类型:

我不知道所有的细节,但是到目前为止已经有了一些解决方案。一种是删除您的已知\u主机文件(或您正试图从该文件中连接到的特定主机),并且您可能能够连接,直到该主机再次添加到已知\u主机——出于某种原因,如果该主机在其中,它将返回相同的错误

我发现的第二个选择是恢复到gem的2.4.0版本。我已在以下地址提交了该问题的票证:

希望有帮助


编辑:Clarif对此的解决方案看起来更容易接受。谢谢,克拉里夫

更简单的解决方案是使用netssh,它修复了这个问题(官方netsshgem的下一个版本也应该修复它),如前所述

如果您在通过capistrano(我今天遇到过)进行部署时遇到这个问题,您可以通过GEM文件从github安装,然后使用
bundle exec cap deploy调用cap


放入gem文件
gem'netssh',git=>'git://github.com/nessche/net-ssh.git“

在关注github上的问题并应用clarif的建议后,我想出了这个解决问题的方法


谢谢!这个变通方法帮了我一段时间,看起来他们很快就在你提供的github链接中发布了一个新的官方gem。修复程序所在的版本是2.5.2。