Implementación de Capistrano 3: fatal: no se pudo leer desde el repository remoto

Tengo una aplicación Rails 5 y Capistrano 3.

Puedo insert el código en el repository de git, así como extraerlo de allí.

Sin embargo, cuando trato de implementar el código en el server (DigitalOcean) a través de Capistrano, aparece este post de error:

00:02 git:check 01 git ls-remote git@bitbucket.org:username/reponame.git HEAD 01 repository access denied. 01 fatal: Could not read from remote repository. 01 01 Please make sure you have the correct access rights 01 and the repository exists. (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as deployer@IP: git exit status: 128 git stdout: Nothing written git stderr: repository access denied. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. SSHKit::Command::Failed: git exit status: 128 git stdout: Nothing written git stderr: repository access denied. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. Tasks: TOP => deploy:check => git:check (See full trace by running task with --trace) The deploy has failed with an error: Exception while executing as deployer@IP: git exit status: 128 git stdout: Nothing written git stderr: repository access denied. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. ** DEPLOY FAILED 

Lo que he hecho: he generado una nueva key SSH en mi mac, el resultado está en los files llamados project_name y project_name.pub . Entonces he ejecutado este command:

 cat ~/.ssh/project_name.pub | pbcopy 

y pegó este código de tecla en la configuration del repository Bitbucket, sección "keys SSH".

En el file de configuration de Capistrano, tengo lo siguiente:

 set :ssh_options, { keys: %w(/Users/my_name/.ssh/project_name), forward_agent: true, auth_methods: %w(publickey password), port: 22 } 

Cuando ejecuto la cap production deploy , me piden que ingrese la contraseña y luego, el process de implementación falla debido al error mencionado anteriormente ( Please make sure you have the correct access rights and the repository exists. ).

¿Cómo establecer adecuadamente las keys / corregir el problema de implementación?

Parece que tu key SSH no está siendo reenviada. Normalmente esto se debe a que su key SSH no está disponible para ssh-agent para el reenvío. Github tiene una buena reseña sobre esto , pero probablemente solo necesites ejecutar: ssh-add project_name .

También es posible que deba cambiar su configuration de SSH, que entra en el artículo de Github, pero comenzaría con solo el ssh-add .

Tenga en count que mi suposition basada en su forward agent: true , es que está intentando implementar reenviando su key SSH local a Github, no utilizando una key de implementación que existe en el server de la aplicación. Si ese no es el caso y su key de deployment está en el server, simplemente configúrelo en falso.