Git克隆产生错误的数据包长度错误

时间:2013-12-21 18:29:53

标签: git ssh gitlab

我在Windows上通过ssh提取git存储库时遇到问题。存储库位于GitLab服务器上。我执行以下步骤:

  1. 使用ssh-keygen -t rsa -C "my@email.here"
  2. 创建公钥
  3. 将密钥保存在C:\Users\myUserName\.ssh\keyName
  4. 运行ssh-agent的输出(即导出SSH_AUTH_SOCK; ...)
  5. 运行ssh-add并在C:\Users\myUserName\.ssh\keyName
  6. 中添加密钥
  7. 在GitLab中添加公钥。
  8. 同样的设置在我的Linux和同事的Windows机器上运行良好。 当我尝试使用git clone克隆存储库时,出现以下错误:

    Disconnecting: Bad packet length 1397966893. fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

    我试着谷歌,但我发现没有什么合适的。有人知道我是否犯了错误或者错误可能是服务器端的吗?

    编辑:我得到以下调试输出:

    C:\Users\Johannes\Documents\GitHub> ssh -vT -p 80 git@random.secret.sever.de
    OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
    debug1: Reading configuration data /c/Users/Johannes/.ssh/config
    debug1: Reading configuration data /etc/ssh/ssh_config
    debug1: Applying options for *
    debug1: Connecting to random.secret.sever.de [192.44.1.37] port 80.
    debug1: Connection established.
    debug1: identity file /c/Users/Johannes/.ssh/identity type -1
    debug1: identity file /c/Users/Johannes/.ssh/id_rsa type 1
    debug1: identity file /c/Users/Johannes/.ssh/id_dsa type -1
    debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.1
    debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.1 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
    Disconnecting: Bad packet length 1397966893.
    

    编辑2:看起来我的问题基于我的硬件和软件设置。刚刚并行完成了相同的步骤,它在另一台计算机上运行。

2 个答案:

答案 0 :(得分:2)

意外地找到了我的问题的原因。我尝试使用旧技巧并启动系统恢复以撤消我的Git安装。由于我的病毒扫描程序,它失败了。卸载 Bitdefender Antivirus免费版后,它运行了。传入的SSH2邮件被阻止(获得Windows 8 Pro),导致bad packet length错误。无论如何,感谢您的支持!

答案 1 :(得分:1)

  

将密钥保存在C:\Users\myUserName\.ssh\keyName

您的本地ssh命令会在%HOME%\.ssh\id_rsa(.pub)中查找ssh密钥。

所以你需要:

  • 重命名代表ssh(公钥和私钥)的本地文件
  • 或通过%HOME%\.ssh\config引用这些内容,该Host gitlab user git hostname your.gitlab.server.com IdentityFile C:\user\YourUsername\.ssh\keyName 可以引用私钥的确切名称(使用IdentityFile directive)。

    gitlab:yourRepo

在第二种情况下,ssh网址为{{1}}。