5

我有一个用于工作的 BB (BitBucket) 帐户和一个用于我自己的 BB 帐户,并希望能够使用 TortoiseHg 和 SSH 从一台 PC 访问它们。

当您将这两个密钥添加到 Pageant,然后尝试推送到使用其中一个帐户的存储库时,Pageant 会将第一个 SSH 传递给 BB,如果它是 BB 帐户,SSH BB 将接受它,使用与相关的帐户登录用户那个 SSH 密钥。

现在,如果第一个 SSH 密钥用于有权访问 repo 的帐户,那很好,但如果第一个 SSH 密钥用于另一个帐户,您将收到授权错误。

似乎根本无法使用 TortoiseHg 将正确的密钥传递给 BB。因此,我不断地将 SSH 从 Pageant 中换出,这显然并不理想,我不妨放弃 SSH 并使用密码。:(

有谁知道让 TortoiseHg 为该帐户传递正确 SSH 的方法?

4

1 回答 1

7

当我写这个问题时,我碰巧遇到了一个解决方案!现在我之前没有遇到过它的原因是它是 Git 而不是 Mecurial,所以我认为仍然值得发布这个问题和这个解决方案,让同一条船上的其他人轻松找到解决方案。:)

解决方案来自这里:https ://answers.atlassian.com/questions/150285/only-the-top-listed-private-key-in-pageant-is-used-offered-by-git-sourcetree-tortoisegit

这是重要的部分:

解决此问题的一种方法是在 PuTTY 中执行相同的配置,以消除要发送的密钥的歧义(以及因此要验证的用户身份)。

  1. 启动 PuTTY(如果没有,请从 putty.org 下载)
  2. 在主机名字段中输入“bitbucket.org”
  3. 转到树中的 Connection > SSH > Auth
  4. 指定 BB 用户使用的密钥
  5. 返回树中的“会话”
  6. 在“已保存的会话”下键入别名(例如 bb-user1)并保存
  7. 对每个 BB 用户重复 2-6 并保存为不同的会话名称

然后在您的远程 URL 中,将“bitbucket.org”替换为会话名称(例如 bb-user1),以消除首先发送的 SSH 密钥的歧义。这与在 OpenSSH 中使用 IdentityFile 相同。

于 2013-05-11T15:32:53.037 回答