with rails digitalocean deploy app ruby-on-rails ruby deployment capistrano

ruby on rails - rails - Capistrano SSH:: AuthenticationFailed, no solicita contraseña



deploy ruby on rails nginx (9)

¡Lo averigué! Aparentemente este problema fue con net-ssh gema net-ssh . Tuve la versión 2.8.0 instalada recientemente con algunas actualizaciones para mi entorno de desarrollo y fue la causa.

No estoy seguro de por qué estaba fallando, pero la gem uninstall net-ssh -v 2.8.0< solucionó para mí.

Si alguien realmente sabe por qué esto fue un problema o cómo puedo corregirlo con la versión más reciente de net-ssh me gustaría escucharlo.

He estado usando capistrano con éxito por un tiempo y, de repente, en cada proyecto he perdido la capacidad de implementación.

Ambiente:

  • OS X Mavericks)
  • ruby 1.9.3p194
  • rvm (localmente, no en el servidor)
  • carriles 3.2 y superiores
  • RubyGems 1.8.25

No estoy usando rsa_keys ni nada de lo que quiero que Capistrano solicite para el usuario y la contraseña. De repente, decidió no solicitar una contraseña, pero sí pregunta por el usuario. Luego retrocede y me da el siguiente error.

[deploy:update_code] exception while rolling back: Capistrano::ConnectionError, connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user [email protected]) connection failed for: sub.example.com (Net::SSH::AuthenticationFailed: Authentication failed for user [email protected])

Esto ha ocurrido en mi computadora portátil personal y mi iMac en el trabajo. Ocurre cuando se implementa en dos servidores diferentes (ambos linux)

Estoy completamente perdido aquí. ¿Algunas ideas?


Actualizar tu versión de net-ssh a 2.8.1 resolverá el problema. Lanzaron un golpe de versión el 19 de febrero de 2014 que soluciona este y otros problemas.

  1. Desinstale su gema de net-ssh actual (gema instale net-ssh -v ''versión'')
  2. Solo pega esto en tu Gemfile:

    gema ''net-ssh'', ''~> 2.8.1'',: git => " https://github.com/net-ssh/net-ssh "

  3. Ejecutar paquete de instalación


Este fragmento funciona para mí:

group :development do #..... gem ''capistrano'', "~> 2.15" gem "net-ssh", "~> 2.7.0" #..... end


Primero intente conectarse a su servidor con el certificado (archivo.pem) con este comando:

ssh -i "file.pem" user@yourServerIp

A continuación, intente ejecutar el despliegue de la producción de capital. Se solucionó el error para mí. Creo que es porque el límite de tiempo para el certificado expiró.


Si todas las soluciones anteriores no funcionan, reinicie su sistema ya que podría estar enfrentando el problema debido a las conexiones de host de net-ssh. Cuando reinicie e ingrese el comando de implementación, le pedirá que agregue la identidad a los hosts conocidos.


Tengo una solución que no requiere degradar net-ssh , por un comentario en el github.com/net-ssh/net-ssh/issues/145 que publicó Zach Lipton . Coloque este código en config/deploy.rb :

set :ssh_options, { config: false #Other options... }

Después de hacer eso, recibí otro error, Error reading response length from authentication socket. Encontré la solución a eso here . Ejecute estos comandos cuando lo solicite Bash:

$ eval $(ssh-agent) $ ssh-add


Tuve el mismo problema durante la implementación usando Capistrano Net :: SSH :: AuthenticationFailed: la autenticación falló para el usuario deployer @ IP

ssh-copy-id deployer @ ip

Esto agregará sus claves al servidor y podrá iniciar sesión sin contraseña.


La respuesta puede romper tu aplicación de rieles debido a las dependencias de gemas.

El problema es con net-ssh como fue respondido correctamente por , sin embargo, aunque esto hará que el capistrano funcione bien, puede romper la aplicación de los rieles:

Estos pasos fijaron tanto capistrano como rieles para mí ...

  1. En tu Gemfile agrega la gem ''net-ssh'', ''2.7.0''
  2. Ejecutar bundle update net-ssh
  3. Ejecutar bundle (solo para estar seguro de que todo funciona bien ''
  4. Ejecutar gem uninstall net-ssh -v 2.8.0

Si usted es un usuario de Rails, ahora debería poder ejecutar tanto el servidor Rails como el Capistrano.


set :ssh_options, { verbose: :debug }

... ¡ayuda mucho!

Tuve un problema que <somename>.id_rsa mis claves públicas y privadas con puttygen y <somename>.id_rsa claves privadas como OpenSSH con el nombre <somename>.id_rsa . Una clave pública guardada con el nombre <somename>.id_rsa.pub .

(!) La clave pública puttygen guardada está en formato RFC 4716 no PEM. Use sufijo public lugar de pub para el archivo de clave pública