如何在没有PuTTY(Pageant)的命令行中使用TortoiseHg

时间:2015-08-12 18:07:23

标签: mercurial tortoisehg ssh-keys plink pageant

之前我使用过Mercurial命令行安装,对于我来说,使用默认的ssh客户端和〜/ .ssh 中的密钥位置,它运行正常。

在我的新笔记本电脑上安装了TortoiseHg。现在任何远程请求(如 hg pull hg incoming )都会生成 PuTTY Fatal Error

  

已断开连接:没有可用的支持身份验证方法(服务器已发送:publickey)

enter image description here

如果我尝试直接通过ssh访问存储库,那么结果非常相似: ssh -vT git@bitbucket.org

使用Pageantplink)可以解决问题:运行它并添加putty键,或者添加选美 plink ) Mercurial配置文件。

但是,我正在寻找如何以旧方式工作,没有选美或plink,只使用默认的ssh密钥位置?

3 个答案:

答案 0 :(得分:9)

看起来与git相反Mercurial不提供自己的ssh客户端,因此除了两个解决方法之外,必须使用Plink和Pageant:

  1. Use TortoisePlink as ssh client with explicit key reference in Mercurial config%USERPROFILE%\。hgrc %USERPROFILE%\ Mercurial.ini ):

      

    [UI]

         

    ssh =“C:\ Program Files \ TortoiseHg \ lib \ TortoisePlink.exe”-ssh -i%USERPROFILE%.ssh \ id_rsa.ppk

  2. 如果您已安装gitcygwin(或在Windows上使用ssh的任何其他方式),则可以在Mercurial配置中使用第三方ssh客户端指向路径:

      

    [UI]

         

    ssh =“C:\ Program Files(x86)\ Git \ bin \ ssh.exe”

         

    #或

         

    #ssh =“PATH_TO_ANY_OTHER_SSH_CLIENT_LIKE_CYGWIN”

  3. 我尝试了两种方式 - 它们非常出色。

    我使用第二个,因为我在我的PC上使用git分布式工具作为主ssh代理。如果您的PC上没有ssh替代品,则第一个选项是合适的。

    备注

    • 有时,基于解析器, ini 文件中的路径使用字符eascaping进行解析,因此 \ 可能会转义下一个符号。在这种情况下,路径应该看起来像 C:\\ Program Files(x86)\\ Git \\ bin \\ ssh.exe (带双斜线)
    • 我的%PATH%变量中有 git \ bin 目录,使用ssh时没有指定完整路径。在这种情况下,在Mercurial配置中,您可以像这样使用:
        

      [UI]

           

      ssh = ssh

答案 1 :(得分:3)

不,没有任何方法可以做到这一点,而无需安装或使用除TortoiseHg之外的某些软件。

Mercurial本身并没有实现SSH。在Unix上,它只运行ssh并期望已经安装了一个合适的客户端(这是一个安全的选择,因为绝大多数Unix系统预先安装了SSH客户端或者可以相对容易地安装一个)。在Windows上,这不是一个合理的假设,所以TortoiseHg bundles a client

  

SSH是对称的对等安全隧道。 SSH客户端和服务器都有自己的密钥管理系统,因此当使用SSH时,Mercurial不会涉及密码提示。这在Windows上存在问题,因此 TortoiseHg将TortoisePlink SSH客户端与其Windows安装程序捆绑在一起。 TortoisePlink是Plink SSH客户端的一个端口,它使用对话框提示进行主机密钥授权和密码提示。 TortoisePlink(由TortoiseSVN项目开发)可以使用属于Plink工具链的其他SSH工具,包括Pageant密钥代理。

如果你不使用TortoisePlink,你很可能没有TortoiseHg能够连接的SSH客户端。如果您不使用Pageant,则没有用于保存密钥的系统; TortoisePlink不使用~/.ssh,因为这不是Windows的工作方式。

答案 2 :(得分:0)

How do I prevent “No supported authentication methods available” error when using TortoiseHg?

在关闭窗口,保存pubkey,保存PrivKey之前,获取/运行puttygen.exe,单击Generate,(no passphrase)。复制所有关键文本(或者您必须返回到puttygen)并将其粘贴到BitBucket网页上的Account / Profile / Settings / Security / SSHKeys区域。 (右键单击)systray中的pageant.exe图标 - 单击“添加密钥”。 退出选美并重新加载它以确保。退出龟并重新加载它只是为了确保。很高兴。