Git en Windows 7 no se conecta a través de ssh a less que otra connection ssh ya esté abierta en el server

Tengo este problema realmente extraño con git en Windows 7. He instalado msysgit, he generado las keys ssh y he añadido id_rsa.pub a authorized_keys en mi máquina Ubuntu. Si abro el shell git bash e bash enviarlo al server, solicita una contraseña. Sin embargo, espero que use la key y no solicite una contraseña. Ahora si primero abro una connection ssh a la máquina Ubuntu (vía masilla) e inicio de session, y luego return al shell git bash, el server acepta la connection con la key sin contraseña.

¿Alguna idea sobre lo que podría estar causando esta connection rareza?

Conéctese al server sin otras conexiones ssh al server:

$ ssh -v jeremy@192.168.1.248 OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Users/Jeremy/.ssh/config debug1: Connecting to 192.168.1.248 [192.168.1.248] port 22. debug1: Connection established. debug1: identity file /c/Users/Jeremy/.ssh/identity type -1 debug1: identity file /c/Users/Jeremy/.ssh/id_rsa type 1 debug1: identity file /c/Users/Jeremy/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-6ubuntu2 debug1: match: OpenSSH_5.1p1 Debian-6ubuntu2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host '192.168.1.248' is known and matches the RSA host key. debug1: Found key in /c/Users/Jeremy/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /c/Users/Jeremy/.ssh/identity debug1: Offering public key: /c/Users/Jeremy/.ssh/id_rsa debug1: Authentications that can continue: publickey,password debug1: Trying private key: /c/Users/Jeremy/.ssh/id_dsa debug1: Next authentication method: password jeremy@192.168.1.248's password: 

Conéctese al server después de abrir la connection ssh al server mediante masilla:

 $ ssh -v jeremy@192.168.1.248 OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007 debug1: Reading configuration data /c/Users/Jeremy/.ssh/config debug1: Connecting to 192.168.1.248 [192.168.1.248] port 22. debug1: Connection established. debug1: identity file /c/Users/Jeremy/.ssh/identity type -1 debug1: identity file /c/Users/Jeremy/.ssh/id_rsa type 1 debug1: identity file /c/Users/Jeremy/.ssh/id_dsa type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian-6ubuntu2 debug1: match: OpenSSH_5.1p1 Debian-6ubuntu2 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_4.6 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-cbc hmac-md5 none debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host '192.168.1.248' is known and matches the RSA host key. debug1: Found key in /c/Users/Jeremy/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /c/Users/Jeremy/.ssh/identity debug1: Offering public key: /c/Users/Jeremy/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 277 debug1: read PEM private key done: type RSA debug1: Authentication succeeded (publickey). debug1: channel 0: new [client-session] debug1: Entering interactive session. Linux curious 2.6.31-23-generic #74-Ubuntu SMP Mon Feb 28 22:20:11 UTC 2011 x86_ 64 To access official Ubuntu documentation, please visit: http://help.ubuntu.com/ 

Me encontré con un problema similar con solo intentar entrar en mi server, no relacionado. El problema real fue que mi directory personal en el server está encriptado. A less que el usuario ya haya iniciado session, el directory encryption con el file authorized_keys no está montado y, por lo tanto, no es accesible por sshd. Si el usuario ya tiene una session abierta, el directory está montado y ssh se comporta como se esperaba.

Aquí está la ayuda oficial de Ubuntu para esta situación: https://help.ubuntu.com/community/SSH/OpenSSH/Keys#Troubleshooting

Aquí está la solución que utilicé: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/362427/comments/12

Y llegué a ambos de este hilo: https://superuser.com/questions/61057/ssh-with-authorized-keys-to-an-ubuntu-system-with-encrypted-homedir

Mi sospecha inmediata es que está buscando un agente de authentication y no encuentra uno, y luego falla al ejecutar ssh-askpass para desbloquear su key privada por algún motivo. Pero si inicia Putty, inicia el agente y lo configura correctamente, luego la línea de command ssh puede usarlo para get su key privada.