如何在一台装有TortoiseHg的PC上使用两个bitbucket帐户(带有单独的ssh密钥)?

Gaz*_*azB 5 ssh mercurial tortoisehg bitbucket

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

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

现在,如果第一个SSH密钥用于有权访问repo的帐户,那就好了但是如果第一个SSH密钥用于另一个帐户,则会收到授权错误.

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

有没有人知道如何让TortoiseHg为该帐户传递正确的SSH?

Gaz*_*azB 7

当我写这个问题时,我偶然遇到了一个解决方案!现在之前我没有遇到它的原因是Git not 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相同.