【问题标题】:Can't push to ssh based git repository无法推送到基于 ssh 的 git 存储库
【发布时间】:2011-05-12 10:05:26
【问题描述】:

我正在尝试通过 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。

有什么建议吗?

【问题讨论】:

  • ssh://*name*@*site*/~/html/dev2 似乎没有包含密码...
  • @Alison ssh://*name*:*pass*@*site* 也不起作用。从我看到有人让它工作的一两个站点,它要求输入密码。

标签: git ssh


【解决方案1】:

显然 Plink 不能以这种方式与 git 一起工作,所以我切换回 ssh。经过多天的痛苦,试图让 ssh 和 git 仅在 Windows 中工作(点击infamous "Unprotected key file!" error,ssh 进程随机挂起,Putty 生成的非标准(且不工作)私钥和公钥,多次重新安装,拖动 cygwin二进制和DLL文件导入git等),我成功推送到远程服务器。

如果您在 Windows 上,我强烈建议您不要尝试此操作,因为该过程太耗时且令人沮丧。我自己正在寻找替代解决方案,因此当我重新格式化或移动到新计算机时,我不必重新执行此操作。

【讨论】:

【解决方案2】:

要将 plink 与 git 一起使用,您必须 do private key authentication。有关说明,请参阅 thisthis

【讨论】:

  • 虽然私钥身份验证可以解决我的问题,但这不是我的服务器,我不能使用这种身份验证。其严格的用户名和密码。
  • 或者,使用来自 cygwin 的 openssh。 git 不能与 plink 一起使用。
猜你喜欢
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 2014-03-15
  • 2013-07-04
  • 2018-06-24
  • 2010-10-25
相关资源
最近更新 更多