hg clone ssh://用户@ url在Windows 7(cygwin)上失败,但适用于OS X.

时间:2015-12-16 21:51:17

标签: windows ssh mercurial cygwin tortoisehg

我尝试hg到远程服务器(hg pullhg push)。在Windows上失败,但在OS X中成功。我对Windows和OS X使用了相同的ssh私钥和公钥。以下是详细信息:

在Windows上,我使用了cygwin,我也安装了openssh。私钥和公钥位于 cygwin home /home/simo/.ssh)的.ssh文件夹中。当我在cygwin中执行hg clone ssh://simo@url时,会出现一个标题为 TortoisePLink 的弹出窗口,并要求我输入密码,我相信这意味着ssh密钥的密码。我进去了,它立即要求我一次又一次地输入它(同一个弹出窗口)。当然,我仔细检查了密码。如果我继续输入密码5次,则会停止并显示Too many authentication failures for simoabort: no suitable response from remote hg!

具有讽刺意味的是,如果我不使用Cygwin,但使用命令提示符,我仍会遇到同样的问题。这可能是理解该问题的关键,因为我不确定命令提示符中使用的ssh是否与cygwin中使用的ssh相同,因此在任何一种情况下ssh密钥似乎都不重要。首先,我只将.ssh的密钥存储在cygwin中,我遇到了问题。我尝试了命令提示符(没有将ssh密钥复制到那里),我也遇到了问题,所以看起来在hg期间根本没有使用ssh密钥。然后我尝试将密钥复制到命令提示符的主目录(C:\Users\simo\.ssh),我也遇到了同样的问题。

我将ssh密钥复制到我的Mac OS X,将它们放在.ssh中,然后运行。一切正常。知道为什么我在Windows上使用hg ssh失败了吗?可能问题是因为如果Cygwin?因为没有使用/找不到ssh密钥?为什么标题为 TortoisePLInk 的弹出窗口一直在问我密码?

1 个答案:

答案 0 :(得分:0)

在Windows上,您可以使用两种不同的ssh键格式:

  • 如果您使用Cygwin和openssh,则格式类似于Unix one
  • 如果您使用PuTTY / Pageant(ssh代理)格式不同

所以你必须选择你想要使用的那个。请注意,您可以"导入"你将Unix格式密钥转换为Pageant代理,这应该可以直接使用Tortoise。

但您也可以在mercurial.ini中配置使用Cygwin ssh(例如参见此答案:https://stackoverflow.com/a/18973676/236726

希望它能提供帮助。