代码之家  ›  专栏  ›  技术社区  ›  Thorbjørn Ravn Andersen

Cygwin“Git Clone”针对Ubuntu 10.04.1给出“远程端意外挂断”

  •  1
  • Thorbjørn Ravn Andersen  · 技术社区  · 14 年前

    我正在研究如何让Eclipse(Windows7)在新迁移的Git cvs存储库中工作,我已经将它放在了Ubuntu10.04.1LTS主机上的Gitosi中。所有软件都安装了apt-get(git、gitosis等)。

    Eclipse和eGit在尝试签出时挂起,因此我在使用命令行客户机。Cygwin有git和openssh,所以我希望它至少可以工作(然后我们可以对本地副本使用eclipse)。为了只执行小步骤,我在另一台具有更多磁盘空间的Ubuntu主机上克隆了Gitosis存储库,并尝试在我的Windows设备上克隆它。

    我收到以下错误消息,这让我有点困惑:

    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
    

    Ubuntu设备上的Git为1.7.0.4,Cygwin为1.7.2.3。SCP和SFTP工作得很好。

    有什么巫毒把戏我需要知道,使这个工作?

    3 回复  |  直到 13 年前
        1
  •  1
  •   Community CDub    8 年前
    • 首先,您应该将公共ssh密钥发布到 10.49.160.91:/home/ravn/.ssh/authorized_keys 文件以便不再需要输入密码。

    • 其次,这种错误通常发生在互操作环境中,文件的名称相同,但大小写不同。
      你能看看这里有没有这样的问题吗?

    同时确保:

    作为另一种选择(正如Op Thorbj_rn发现的那样),尝试从 msysgit version ,基于mingw(而不是用cygwin包装的git)

        2
  •  1
  •   Rob    14 年前

    我想我也遇到过同样的问题。解决这个问题的方法是使用cygwin-git和putty来代替cygwin的ssh。

    我尝试了Putty解决方案,因为Cygwin邮件列表线程中的信息:

    这个cygwin邮件线程似乎也指出了cygwin/openssl/git for git版本1.7.1中的一些问题(我在git 1.7.3.3上,因此问题可能跨越多个版本):

    如果您已经有了一个有效的cygwin git+cygwin ssh配置,那么您可能不需要从头开始。为我工作的是

    1. 从Putty网站下载puttygen.exe、plink.exe、pagent.exe和putty.exe。
    2. 运行puttygen.exe将现有的cygwin.ssh私钥转换为putty.ppk私钥,然后将其保存到某个地方。
    3. 运行pagent.exe,加载putty私钥并授权。
    4. 接下来,运行putty.exe在要从git访问的主机上执行ssh,以便将主机保存到Windows注册表中的已知ssh主机列表中。
    5. 最后,您需要配置git使用putty而不是cygwin ssh。为此,请将环境变量git_ssh设置为指向plink.exe可执行文件。例如。, export GIT_SSH=/cygdrive/c/somedirectory/plink.exe

    高温高压

        3
  •  0
  •   Jerry Asher    14 年前

    您是如何创建密钥的?

    你是从类似cygwin的shell中使用cygwin,还是从类似git-bash的shell中使用mingw-git?

    我认为真正的问题是Cygwin的ssh在/home中查找.ssh/ 名称 /.ssh和mingw的git ssh在c:/user中查找.ssh/ 名称 ssh

    很可能你的密钥在一个而且只有一个目录中。

    您可以尝试告诉cygwin的.ssh使用-i开关使用不同的标识文件,或者将密钥移动到两个目录中,或者在/home中创建ssh配置文件。/ 名称 /ssh/CONFIG。

    我创建了一个配置,其中包含:

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

    考虑到我可以使用GitBash中的mingwGit或RxVT中的cygwin的Git与GitHub进行交互。