之前有没有人见过这个错误?我无法在源代码中找到对SUPPORTED_TYPE的任何引用...
IRB(主):013:0> connection = Net :: SSH.start('host','user',:password =>'password') NameError:未初始化的常量Net :: SSH :: KnownHosts :: SUPPORTED_TYPE 来自/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:in` each_line' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105:in`key键_for' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:in“open” 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:103:in`key键_for' 来自/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:33:in`map' 来自/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:in`search_for' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:237:in“prepare_preferred_algorithms!” 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/algorithms.rb:120:in`initialize' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:in“new” 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79:in`initialize' 来自/usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in“new” 来自/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
答案 0 :(得分:4)
更简单的解决方案是使用this forked version net-ssh修复该问题(官方net-ssh gem的下一个版本也应该修复它),如here所述。
如果您在通过capistrano(我今天使用)部署时遇到此问题,您可以通过Gemfile从github安装this net-ssh version,然后使用bundle exec cap deploy
调用上限。
放入Gemfile gem 'net-ssh', :git => 'git://github.com/nessche/net-ssh.git'
。
答案 1 :(得分:2)
这是一个似乎已经在5月24日更新2.5.0或2.5.1引入net-ssh gem的问题。你可以在这里找到常量SUPPORTED_TYPE:
http://net-ssh.github.com/net-ssh/classes/Net/SSH/KnownHosts.html
我不知道所有细节,但到目前为止,已经有一些解决方案。一种是删除您的known_hosts文件(或您尝试从该文件连接的特定主机),并且您可能能够连接,直到该主机再次添加到known_hosts - 如果它在,它将返回相同的错误出于某种原因。
我发现的第二个选项是恢复到宝石版本2.4.0。我已在以下网址提交了该问题的门票:
希望它有所帮助!
编辑:Clarif对此的解决方案看起来更可接受。谢谢,Clarif!答案 2 :(得分:1)
在关注github上的问题并应用clarif建议的内容之后,我想出了解决问题的方法。