代码之家  ›  专栏  ›  技术社区  ›  TheLQ

无法推送到基于ssh的git存储库

  •  1
  • TheLQ  · 技术社区  · 15 年前

    我正试图通过SSH而不是普通的https或任何默认的方式推送到存储库。此进程需要用户名和密码,而不是ssh密钥。但是,当我尝试这样做时,总是失败:

    Owner@DESKTOP /w/programming/wreckcreations-site/dev (dev)
    $ git push -vvv --all ssh://*name*@*site*/~/html/dev2
    Pushing to ssh://*name*@*site*/~/html/dev2
    fatal: The remote end hung up unexpectedly
    

    我以为这是SSH问题,就试着用SSH连接到本地服务器

    Owner@DESKTOP /w/programming/wreckcreations-site/dev (dev)
    $ "`echo $GIT_SSH`" 192.168.2.2
    login as: root
    root@192.168.2.2's password:
    Last login: Thu Nov 18 19:36:58 2010 from 192.168.2.4
    ←]0;root@system:~[root@system ~]# exit
    logout
    ←[H←[2J
    Owner@DESKTOP /w/programming/wreckcreations-site/dev (dev)
    $ git push -vvv --all ssh://root@192.168.2.2/~/somedir
    Pushing to ssh://root@192.168.2.2/~/somedir
    fatal: The remote end hung up unexpectedly
    

    相同的错误消息。。。所以我查看了/var/log/secure

    Nov 18 21:15:06 system sshd[28460]: Accepted password for root from 192.168.2.4 port 2788 ssh2
    Nov 18 21:15:06 system sshd[28460]: pam_unix(sshd:session): session opened for user root by (uid=0)
    Nov 18 21:15:11 system sshd[28460]: pam_unix(sshd:session): session closed for user root
    Nov 18 21:17:35 system sshd[28618]: Received disconnect from 192.168.2.4: 13: Unable to authenticate
    

    前三行来自plink,最后一行来自git。最后一行可以在每次尝试使用git push时重复。这毫无意义

    如果我假设我的远程主机收到相同的错误消息,为什么git不提交我的用户名并断开连接?我以前从没见过这种错误,所以我真的很困惑。

    需要注意的是,这是一个使用msysgit的Windows XP框,两个远程服务器都是Linux。

    有什么建议吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   J-16 SDiZ    15 年前

    要在git中使用plink,必须 do private key authentication . 见 this 或 this 以获得指示。

        2
  •  1
  •   Community Mohan Dere    9 年前

    很明显,Plink在git上不能这样工作,所以我切换回ssh。在尝试让ssh和git只在Windows中工作了许多天后(点击 infamous "Unprotected key file!" error ,ssh进程随机挂起,Putty生成的非标准(不工作)私钥和公钥,多次重新安装,将cygwin二进制文件和DLL文件拖拽到git中等),成功推送到远程服务器。

    我强烈建议你不要在Windows上尝试这个,因为这个过程太耗时和令人沮丧了。我自己在寻找其他的解决方案,这样当我重新格式化或移动到一台新的计算机上时,就不必再做一遍了。