Implementación de Capistrano desde Windows con la opción forward_agent: "Error al leer la longitud de respuesta del socket de autenticación".

Estoy tratando de desplegar un proyecto usando Capistrano. Mi máquina de desarrollo ejecuta Windows 7; el servidor en el que estoy desplegando es Linux.

En el script deploy.rb, se establece lo siguiente:

<code>ssh_options[:forward_agent] = true
</code>

El script de Capistrano comienza ejecutando un comando git localmente, en cuyo punto se me solicita la frase de contraseña para mi clave SSH:

<code>* executing `deploy:update_code'
executing locally: "git ls-remote [email protected]:pathto/gitproject.git develop"
Enter passphrase for key '/c/Users/Sam/.ssh/id_rsa':
command finished in 6999ms
</code>

(He eliminado la ruta git real de la anterior como probablemente puedas ver).

Ingrese mi contraseña y esto funciona bien. Sin embargo, Capistrano intenta hacer algo similar en la máquina remota (cuyo nombre se cambió a staging-server.com en la siguiente página) y aparece un error: vea la línea final de este extracto:

<code>[staging-server.com] executing command
[staging-server.com] sh -c 'git clone [email protected]:pathto/gitproject.git /home/perstest/releases/20120412074500 && cd
/home/perstest/releases/20120412074500 && git checkout -b deploy 50eaf06d06d66fd20c3e55038276f420d8c308a8 && (echo 50eaf06d06d66fd20c3e55038
276f420d8c308a8 > /home/perstest/releases/20120412074500/REVISION)'
 ** [staging-server.com :: out] Initialized empty Git repository in /home/perstest/releases/20120412074500/.git/
 ** [staging-server.com :: err] Error reading response length from authentication socket.
</code>

Si comento la línea forward_agent en deploy.rb, esta instalación se realiza correctamente, presumiblemente utilizando la clave del propio servidor de implementación.

Mi clave SSH parece estar funcionando; después de todo, el comando git inicial funciona, puedo usarlo en git push / pull y ssh -T [email protected] informa lo que debería (como se recomienda engithub: ayuda).

Asumí que mi máquina no estaba sirviendo claves cuando el servidor remoto me las pidió. Después de un montón de googlear, encontré las recomendaciones enhttp://hustoknow.blogspot.co.uk/2011/06/ssh-agent-and-agent-forwarding-on.html, que explica cómo ejecutar ssh-agent en el inicio. Estaba haciendo todo esto desde el indicador de comando, así que luego cambié a git-bash y configuré mi .bash_profile para que incluyera el script al que he enlazado.

Después de agregar esto, se me pidió mi frase de contraseña cuando inicié git bash por primera vez y luego pude conectarme a github usando la clave SSH (sin tener que volver a ingresar la frase de contraseña). Además, ssh-add -L informó que efectivamente había una clave disponible. ¡Así que todo parece estar configurado correctamente!

Sin embargo, todavía me sale el "Error al leer la longitud de respuesta del socket de autenticación". error.

¿Algunas ideas? Esto funciona para mi colega (el mismo archivo deploy.rb) cuya máquina de desarrollo es Linux.

Respuestas a la pregunta(1)

Su respuesta a la pregunta