rails ocean digitalocean deploy app ruby-on-rails ssh capistrano digital-ocean capistrano3

ruby-on-rails - digitalocean - digital ocean rails puma



No se puede implementar la aplicación Rails en Digital Ocean debido a un tipo de clave no compatible (1)

Configuré la gota en DO y nginx está funcionando correctamente. Seguí la guía sobre DO en la implementación en el servidor a través de Capistrano. Puedo ingresar al servidor sin ingresar mi contraseña. Pero al ejecutar bundle exec cap production deploy:initial Obtengo un error muy extraño:

cap aborted! NotImplementedError: unsupported key type cap aborted! NotImplementedError: unsupported key type pl + lI D U X K/ L [ / M / M A?d h"sU Ǐ 2 ?h a 5G͕ E %!Cg j | tu yL* ''/9 s۷''

Estoy usando la clave SSH de rsa y esto ha funcionado con muchos (> 10) servidores sin problemas. Traté de eliminar el ssh_options de mi archivo deploy/production.rb . Esto debería pedir la contraseña del servidor antes (¿supongo?). Pero recibo el mismo error, lo que me lleva a sospechar que algo más me está haciendo tropezar.

Versiones de gemas:

net-ssh (3.2.0) capistrano (3.6.0) sshkit (1.11.2)


Creo que te has topado con un error en sshkit. Las versiones recientes de sshkit tienen un mecanismo personalizado de carga de claves y almacenamiento en caché SSH para mejorar el rendimiento de la conexión.

Sin embargo, parece que la implementación personalizada no es tan a prueba de balas como la implementación predeterminada de net-ssh que reemplaza. Específicamente, net-ssh ignorará silenciosamente las claves que no admite. El cargador de claves personalizado sshkit no hace esto, por lo que explota con el error de unsupported key type que está viendo.

Si mi teoría es correcta, entonces debería poder solucionar su problema desactivando el cargador de claves personalizado de sshkit y forzando la implementación original de net-ssh. Puede hacer esto agregando lo siguiente a su deploy.rb :

set :ssh_options, known_hosts: Net::SSH::KnownHosts