Cygwin "git clone" da "final remoto colgado inesperadamente" contra Ubuntu 10.04.1

Estoy en el process de descifrar cómo hacer que Eclipse (Windows 7) funcione contra nuestro repository de CVS recientemente migrado por git que he puesto en gitosis en un host Ubuntu 10.04.1 LTS. Todo el software se instala con apt-get (git, gitosis, etc.).

Eclipse con egit se cuelga cuando bash verificar, así que estoy jugando con clientes de línea de command. Cygwin tiene git y openssh, así que me gustaría que funcione al less (entonces podemos usar Eclipse contra la copy local). Para hacer solo babysteps he clonado el repository de gitosis en otro host Ubuntu con más espacio de disco, e bash clonar eso en mi caja de Windows.

Aparece el siguiente post de error que me deja perplejo:

tra@TRA /cygdrive/c/Users/tra/git $ git clone ravn@10.49.160.91:/home/ravn/cvs2git/git00 Cloning into git00... Enter passphrase for key '/home/tra/.ssh/id_rsa': remote: Counting objects: 64045, done. remote: Compressing objects: 100% (17965/17965), done. fatal: The remote end hung up unexpectedly.98 MiB | 8.21 MiB/s fatal: early EOFs: 98% (62852/64045), 310.98 MiB | 8.21 MiB/s fatal: index-pack failed 

git es 1.7.0.4 en el cuadro Ubuntu y 1.7.2.3 en Cygwin. scp y sftp funcionan muy bien.

¿Hay algún truco vudú que necesito saber para que esto funcione?

  • Primero, debe publicar su key pública ssh en el file 10.49.160.91:/home/ravn/.ssh/authorized_keys para no tener que ingresar su frase de contraseña.

  • En segundo lugar, este tipo de error generalmente tiene lugar en un entorno de interoperabilidad, con files que tienen el mismo nombre pero con un caso diferente.
    ¿Puedes verificar si tienes un problema aquí?

Asegúrese también de:

  • configura tu core.autocrlf local (PC) core.autocrlf falso .
  • compruebe que core.ignorecase está configurado en falso (su valor pnetworkingeterminado)

Como alternativa (como descubrió OP Thorbjørn), intente con git checkout desde la versión de msysgit , basado en mingw (en lugar de git empaquetado con cygwin)

Creo que encontré el mismo problema. Lo que resolvió para mí fue usar Cygwin Git con PuTTY para ssh en lugar de ssh de Cygwin.

Probé la solución PuTTY debido a la información en este hilo de la list de correo de Cygwin:

Este hilo de correo Cygwin también parecía apuntar a algún problema en Cygwin / OpenSSL / Git para Git versión 1.7.1 (estoy en Git 1.7.3.3, por lo que el problema puede abarcar varias versiones):

Si ya tenía una configuration Cygwin Git + Cygwin ssh en funcionamiento, es posible que no necesite comenzar desde el principio. Lo que funcionó para mí fue

  1. Descargue puttygen.exe, plink.exe, pageant.exe y putty.exe del website PuTTY.
  2. Ejecute puttygen.exe para convertir su key privada Cygwin .ssh en una key privada PuTTY .ppk y luego guárdela en algún lugar.
  3. Ejecute pageant.exe, cargue la key privada PuTTY y autorice.
  4. A continuación, ejecute putty.exe en ssh en los hosts a los que desea acceder desde Git, para que pueda save el host en la list de hosts ssh conocidos en el logging de Windows.
  5. Finalmente, debe configurar Git para utilizar PuTTY en lugar de Cygwin ssh. Para hacer esto, configure la variable de entorno GIT_SSH para apuntar al ejecutable plink.exe. Por ejemplo, export GIT_SSH=/cygdrive/c/somedirectory/plink.exe

HTH

¿Cómo creaste tus llaves?

¿Usaste cygwin de un shell tipo cygwin, o usaste mingw git desde un shell git bash?

Creo que el verdadero problema es que ssh de cygwin busca .ssh en / home / name /.ssh y git ssh de mingw busca .ssh en c: / user / name /.ssh

Lo más probable es que sus keys estén en uno y solo uno de estos directorys.

Puede intentar decirle a cygwin's .ssh que use un file de identidad diferente usando el modificador -i, o mover las keys a ambos directorys, o crear un file de configuration de ssh en / home / name /.ssh/config.

Creé una configuration que contiene:

 Host github.com User jerryasher Hostname github.com IdentityFile c:/Users/jerry/.ssh/id_rsa 

Y dado que puedo usar el mingw git de git bash o el git de cygwin de un rxvt para interactuar con github.