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ó inesperadamenteSSHKit :: 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 => trueespacio 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,: productionrol: 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
[éxito] configuración de
repo_url
ok[éxito] ssh archivo de clave privada existe
[el éxito] el proceso
ssh-agent
parece estar ejecutándose localmente[éxito] proceso de
ssh-agent
reconocido por el comandossh-add
[éxito] claves privadas ssh añadidas a
ssh-agent
repositorio de aplicaciones [éxito] accesible desde la máquina local
[éxito] todos los hosts usando login sin contraseña
[éxito]
forward_agent
ok para todos los hosts[éxito] agente ssh reenviado con éxito a hosts remotos
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
.