Ошибка 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 этого гема. Я отправил заявку на выпуск по адресу:
Надеюсь, поможет!
РЕДАКТИРОВАТЬ: решение Clarif для этого выглядит более приемлемым. Спасибо, Клариф!
После изучения вопросов на github, а также применения предложенного условия, я решил, что это решило мою проблему.