Ошибка SUPPORTED_TYPE при настройке соединения net-ssh

Кто-нибудь видел эту ошибку раньше? Мне не удалось найти ссылку на SUPPORTED_TYPE в источнике...

irb (main): 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: в `keys_for'из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:105: в "each_line" из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ ssh / known_hosts.rb: 105: в `keys_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 `keys_for'из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/known_hosts.rb:33: в `search_in'из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/ net / ssh / known_hosts.rb: 33: в `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: в "новом" из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh/transport/session.rb:79: в "initialize" из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186: в "новом" из /usr/lib/ruby/gems/1.8/gems/net-ssh-2.5.1/lib/net/ssh.rb:186:in в "старте" из (irb):13 из / USR / Lib / рубин / site_ruby / 1,8 / RubyGems/specification.rb:1313

3 ответа

Решение

Более простое решение состоит в том, чтобы использовать эту разветвленную версию net-ssh, которая решает эту проблему (следующий выпуск официального гема net-ssh также должен ее исправить), как описано здесь.

Если у вас возникла эта проблема при развертывании через capistrano (что было у меня сегодня), вы можете установить эту версию net-ssh из github через Gemfile, а затем вызвать cap, используя bundle exec cap deploy,

Положить в Gemfile gem 'net-ssh', :git => 'git://github.com/nessche/net-ssh.git',

Эта проблема, по-видимому, была введена 24 мая обновлением 2.5.0 или 2.5.1 для гема net-ssh. Вы можете найти константу SUPPORTED_TYPE здесь:

http://net-ssh.github.com/net-ssh/classes/Net/SSH/KnownHosts.html

Я не знаю всех деталей, но до сих пор было несколько решений этой проблемы. Одним из них является удаление файла known_hosts (или конкретного хоста, к которому вы пытаетесь подключиться, из этого файла), и вы можете подключиться до тех пор, пока этот хост не будет снова добавлен в known_hosts - он вернет ту же ошибку, если он находится в там по какой-то причине.

Второй вариант, который я нашел, - вернуться к версии 2.4.0 этого гема. Я отправил заявку на выпуск по адресу:

http://net-ssh.lighthouseapp.com/projects/36253-net-ssh/tickets/58-nameerror-uninitialized-constant-netsshknownhostssupported_type

Надеюсь, поможет!

РЕДАКТИРОВАТЬ: решение Clarif для этого выглядит более приемлемым. Спасибо, Клариф!

После изучения вопросов на github, а также применения предложенного условия, я решил, что это решило мою проблему.

http://tinyurl.com/cxr2xa3

Другие вопросы по тегам