rails digitalocean deploy app ruby-on-rails bitbucket capistrano3

ruby-on-rails - deploy rails app to digitalocean



SSHKit::Runner::ExecuteError (2)

$ bundle exec cap production deploy

(Backtrace restringido a las tareas importadas).
SSHKit :: Runner :: ExecuteError:
Excepción durante la ejecución como Psara @ sakura: git estado de salida: 128 git stdout: Nada escrito git stderr: Permiso denegado (publickey).
fatal: el extremo remoto colgó inesperadamente

SSHKit :: Command :: Failed:
Estado de salida de git: 128
git stdout: nada escrito
git stderr: Permiso denegado (publickey).
fatal: el extremo remoto colgó inesperadamente

Tareas: TOP => git: check (Ver rastreo completo ejecutando la tarea con --trace) La implementación ha fallado con un error:
Excepción durante la ejecución como Psara @ sakura:
Estado de salida de git: 128 git stdout: nada escrito
git stderr: Permiso denegado (publickey).

fatal: el extremo remoto colgó inesperadamente

*

deploy.rb

conjunto: aplicación, ''Psara''
set: repo_url, ''[email protected]: CBLaughter / psara.git''
set: deploy_to, ''/ home / Psara / Psara''
set: default_run_options,: pty => true

espacio de nombres: desplegar hacer

after: restart,: clear_cache do en roles (: web), en:: groups, limit: 3, wait: 10 do # Aquí podemos hacer algo como: # en release_path do # execute: rake, ''cache: clear'' # end end end

fin

set: ssh_options, {forward_agent: true, paranoid: true, keys: "~ / .ssh / id_rsa"}

*

producción.rb

conjunto: etapa,: puesta en escena
set: rails_env,: production

rol: app,% w {sakura}
rol: web,% w {sakura}
rol: db,% w {sakura}

servidor ''sakura'', usuario: ''Psara'', roles:% w {aplicación web}, propiedad_mía:>: mi_valor

set: ssh_options, {
teclas:% w (~ / .ssh / id_rsa),
forward_agent: false,}



Me alegraría, si pudieras enseñarme qué puedo hacer para resolver este problema.

Ya he agregado una clave pública en el bitbucket, pero no funciona.

*

Informe de reenvío de agente SSH

  1. [éxito] configuración de repo_url ok

  2. [éxito] ssh archivo de clave privada existe

  3. [el éxito] el proceso ssh-agent parece estar ejecutándose localmente

  4. [éxito] proceso de ssh-agent reconocido por el comando ssh-add

  5. [éxito] claves privadas ssh añadidas a ssh-agent

  6. repositorio de aplicaciones [éxito] accesible desde la máquina local

  7. [éxito] todos los hosts usando login sin contraseña

  8. [éxito] forward_agent ok para todos los hosts

  9. [éxito] agente ssh reenviado con éxito a hosts remotos

  10. repositorio de aplicaciones [éxito] accesible desde hosts remotos

Parece que el reenvío de agente SSH está configurado correctamente! Puede continuar con el proceso de implementación.

Tuvo éxito en todas las pruebas, pero sigue cometiendo el mismo error.


Asegúrese de que tiene ssh-agent ejecutándose en su máquina, ya que está usando el reenvío ssh, sus claves locales deberían poder acceder y clonar su repo desde bitbucket. Puedes ejecutarlo con:

eval `ssh-agent` ssh-add ~/.ssh/id_rsa

Más información sobre ssh-forwarding se puede encontrar aquí .

Otra cosa que debe verificar manualmente es que puede enviar un ssh a su servidor (su clave pública debe agregarse a ~/.ssh/authorized_keys en el servidor), y por supuesto que puede clonar su repo localmente (que probablemente pueda hacer).

Actualizar:

Ahora me he dado cuenta de que activa el reenvío para la producción, en ese caso, debe asegurarse de que el par de claves que está en su servidor (debe tenerlo, porque el reenvío está desactivado), pueda clonar el repositorio de bitbucket, puede intentarlo La clonación en el servidor a mano también.


Como dice el rastreo, esto probablemente esté relacionado con las claves públicas ssh. Recomendaría solucionar el problema con capistrano-ssh-doctor . Recibirá un informe que indica exactamente lo que salió mal en la configuración.

Descargo de responsabilidad, soy el autor del complemento capistrano-ssh-doctor .