【问题标题】:How to use TortoiseHg from command line without PuTTY (Pageant)如何在没有 PuTTY 的情况下从命令行使用 TortoiseHg(选美)
【发布时间】:2015-08-12 18:07:22
【问题描述】:

之前我使用了Mercurial 命令行安装,它在默认 ssh 客户端和 ~/.ssh 中的密钥位置对我来说效果很好。

在我的新笔记本电脑上,我安装了TortoiseHg。现在任何远程请求(如 hg pullhg incoming)都会生成 PuTTY 致命错误

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

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

使用Pageant (plink) 可以解决问题:运行它并添加 putty 密钥,或将 pageant (plink) 添加到 Mercurial 配置文件。

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

【问题讨论】:

  • 您是否尝试过使用 HTTPS 而不是 SSH?
  • 我需要 ssh,而不是 https
  • Bitbucket 支持 HTTPS 就好了。
  • 问题与Bitbucket无关,与TortoiseHg有关
  • 你是巨魔吗?你为什么不建议我使用 git?这也适用于 Bitbucket 和 HTTPS。问题是具体而明确的:TortoiseHg 中的 ssh。不是其他协议、应用程序或存储库。

标签: mercurial tortoisehg ssh-keys plink pageant


【解决方案1】:

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

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

    [用户界面]

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

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

    [用户界面]

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

    # 或

    # ssh = "PATH_TO_ANY_OTHER_SSH_CLIENT_LIKE_CYGWIN"

两种方法我都试过了——效果很好。

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

注意事项

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

    [用户界面]

    ssh = ssh

【讨论】:

    【解决方案2】:

    不,如果不安装或使用除 TortoiseHg 本身之外的一些软件,没有任何方法可以做到这一点

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

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

    如果你不使用 TortoisePlink,你很可能没有 TortoiseHg 能够与之交互的 SSH 客户端。如果您不使用 Pageant,则没有保存密钥的系统; TortoisePlink 不使用~/.ssh,因为这不是 Windows 做事的方式。

    【讨论】:

    • 这不是TortoisePlink 做事的方式。 Windows 不在乎,将 .ssh 目录放在 %USERPROFILE% 中可以在 Windows 上正常工作。
    【解决方案3】:

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

    获取/运行 puttygen.exe ,单击生成,(无密码),然后关闭窗口,保存 pubkey,保存 PrivKey。复制所有密钥文本,(否则您将不得不返回 puttygen)并将其粘贴到 BitBucket 网页上的 Account/Profile/Settings/Security/SSHKeys 区域。 (右键单击)系统托盘中的 pageant.exe 图标 - 单击“添加密钥”。 退出选美并重新加载它只是为了确保。退出乌龟并重新加载它只是为了确保。很高兴。

    【讨论】:

      猜你喜欢
      • 2012-07-15
      • 1970-01-01
      • 2014-05-29
      • 2020-04-09
      • 1970-01-01
      • 2021-01-27
      • 2014-04-05
      • 1970-01-01
      • 2019-12-18
      相关资源
      最近更新 更多