我正在尝试通过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。
有什么建议吗?
答案 0 :(得分:1)
要将plink与git一起使用,您必须do private key authentication。有关说明,请参阅this或this。
答案 1 :(得分:1)
显然Plink只是不能用git这样工作,所以我切换回ssh。经过多天的痛苦尝试让ssh和git在Windows中工作(点击infamous "Unprotected key file!" error,ssh进程随机挂起,非标准(和不工作)私钥和公钥由Putty生成,多次重新安装,拖动将cygwin二进制文件和DLL文件放入git等),我成功地推送到了远程服务器。
如果您在Windows上,我强烈建议您不要尝试此操作,因为这个过程太耗时且令人沮丧。我自己在寻找替代解决方案,所以当我重新格式化或移动到新计算机时,我不必再重复这一点。