El deployment de Capistrano en Windows falla con git

Estoy tratando de implementar en la máquina de Windows con git bash. A continuación se muestra mi file staging.rb.

set :stage, :staging set :chruby_ruby, '2.2' set :rails_env, :staging #set :branch, '15_inaccurate-line-on-map' set :branch, 'staging' set :ssh_options, { forward_agent: true } set :rvm_roles, [:some] set :rvm_map_bins, [] server 'XX.XX.XX.XX', user: 'deploy', roles: %w(web app db) 

El repository está en bitbucket. Agregué mi key en bitbucket y server. Entonces estos commands son exitosos cuando pruebo bash.

 ssh deploy@XX.XX.XX.XX ssh -A deploy@xx.xx.xx.xx 'git ls-remote --heads git@bitbucket.org:<user>/<repo>.git' git pull origin staging 

El problema es que veo un error en Git: verifique cuando estoy intentando desplegar la puesta en escena de la tapa

 INFO [548342cf] Running /usr/bin/env mkdir -p /tmp/butlermaps/ as deploy@xx.xx.xx.xx INFO [548342cf] Finished in 3.145 seconds with exit status 0 (successful). INFO Uploading /tmp/butlermaps/git-ssh.sh 100.0% INFO [2f19d649] Running /usr/bin/env chmod +x /tmp/butlermaps/git-ssh.sh as depl oy@xx.xx.xx.xx INFO [2f19d649] Finished in 0.487 seconds with exit status 0 (successful). ** Execute git:check INFO [61e3a414] Running /usr/bin/env git ls-remote --heads git@bitbucket.org:<user>/<repo>.git as deploy@xx.xx.xx.xx cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as deploy@xx.xx.xx.xx: git exit status: 128 git stdout: Nothing written git stderr: Error reading response length from authentication socket. conq: repository access denied. fatal: The remote end hung up unexpectedly c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel. rb:16:in `rescue in block (2 levels) in execute' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel. rb:12:in `block (2 levels) in execute' SSHKit::Command::Failed: git exit status: 128 git stdout: Nothing written git stderr: Error reading response length from authentication socket. conq: repository access denied. fatal: The remote end hung up unexpectedly c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/command.rb:95:in `exit_status=' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:179:in `block in _execute' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:133:in `tap' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:133:in `_execute' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:66:in `execute' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/capistrano-3.4.0/lib/capistrano/git.rb:11 :in `git' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/capistrano-3.4.0/lib/capistrano/git.rb:21 :in `check' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/capistrano-3.4.0/lib/capistrano/tasks/git .rake:28:in `block (4 levels) in <top (requinetworking)>' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/abstract .rb:85:in `with' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/capistrano-3.4.0/lib/capistrano/tasks/git .rake:27:in `block (3 levels) in <top (requinetworking)>' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:54:in `instance_exec' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/backends/netssh.r b:54:in `run' c:/Ruby21-x64/lib/ruby/gems/2.1.0/gems/sshkit-1.7.1/lib/sshkit/runners/parallel. rb:13:in `block (2 levels) in execute' Tasks: TOP => git:check The deploy has failed with an error: Exception while executing as deploy@xx.xx.xx.xx: git exit status: 128 git stdout: Nothing written git stderr: Error reading response length from authentication socket. conq: repository access denied. fatal: The remote end hung up unexpectedly ** Invoke deploy:failed (first_time) ** Execute deploy:failed 

Alguien tiene una idea de por qué falla en git: ¿verificar?

Cualquier tipo de ayuda se agradece.

Entonces su problema era en realidad los permissions de GIT del server de implementación. El server de implementación no pudo acceder al repository porque se agregó una key pública como key personal a una de las counts que tenían acceso al repository anteriormente pero cuyo acceso fue revocado recientemente, por lo que el acceso al server de implementación también se revocó.

Sin embargo, es un misterio el motivo por el cual la cap staging deploy aún funcionaba para otro desarrollador (yo). Tal vez porque tenía oh-my-zsh y estaba haciendo algo de magia usando mis keys ssh para organizar el server.

En realidad, encontré esta pregunta de ustedes buscando en Google el post de error que había intentado configurar para implementar otro desarrollador, y eso es bastante divertido.

Entonces, la solución general sería: ¡agregue sus counts del server de implementación a las 'keys de implementación' del repository, gente! No a las llaves personales.