我尝试hg
到远程服务器(hg pull
或hg 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 simo
和abort: 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 的弹出窗口一直在问我密码?
答案 0 :(得分:0)
在Windows上,您可以使用两种不同的ssh键格式:
所以你必须选择你想要使用的那个。请注意,您可以"导入"你将Unix格式密钥转换为Pageant代理,这应该可以直接使用Tortoise。
但您也可以在mercurial.ini
中配置使用Cygwin ssh(例如参见此答案:https://stackoverflow.com/a/18973676/236726)
希望它能提供帮助。