windowsgitsshbitbucket

Multiple Bitbucket SSH accounts on same machine


I'm trying to get multiple Bitbucket accounts working from the same machine via SSH.

In my .ssh\config file, I have:

Host account1.bitbucket.org
  Hostname bitbucket.org
  PreferredAuthentications publickey
  IdentitiesOnly yes
  IdentityFile ~/.ssh/account1

Host account2.bitbucket.org
  Hostname bitbucket.org
  PreferredAuthentications publickey
  IdentitiesOnly yes
  IdentityFile ~/.ssh/account2

Then I'm changing the remote for the git repo to use the alias:

git@account1.bitbucket.org:myUserName/myRepoName.git
git@account2.bitbucket.org:myUserName/myRepoName.git

Then in Pageant (in the system tray), I'm adding both my PPK keys.

Unfortunately if I've added both keys to Pageant, only one of the accounts work.

If I only have one key in Pageant at a time, then it'll work for whichever Bitbucket account I added to Pageant.

So it looks like pageant isn't using the correct key if there's more than one key in its list.

Any ideas on why it's doing this?


Solution

  • I got this working by not using Pageant. I'm using Sourcetree as a Git GUI, and in the options, there's a dropdown saying whether to use OpenSSH or Putty/Plink.

    Based on the description by Steve Streeting here:

    https://answers.atlassian.com/questions/164479/sourcetree-support-multiple-ssh-keys

    It sounds like Pageant doesn't use the .ssh\config configuration anyway.

    By changing to OpenSSH, then regenerating the keys using ssh-keygen, and adding the private keys via Sourcetree's "Tools .. Add SSH Keys" menu, this is now working perfectly using different keys across multiple accounts. I just need to alter the remote url of each git repo to use the correct alias in the config file (as described in my initial post).

    Update:

    I've written a blog post about this here: http://www.danclarke.com/multiple-ssh-keys-for-git/