Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Along the lines of Tell git which private key to use I would like to use a specific ssh key in a given situation.

My problem is that even when I specify '-i something' ssh uses the keys from my ssh-agent in the order they are added.

My specific situation:

  • I have two github users, each with their own key I would like to - for example via a ssh-config - for each clone specify which key to use:

    Host USER1.git

    Hostname github.com

    User git

    IdentityFile ~/.ssh/USER1.id_rsa

ssh -vt USER1.git

will still use USER2.id_rsa if that is the key first added to ssh-agent.

share|improve this question

2 Answers 2

Use IdentitiesOnly yes below these hosts, in .ssh/config.

share|improve this answer
    
but then it will not use the agent and force me to enter passphrase for all github connections –  svrist Nov 18 '11 at 8:01
1  
Yes, this is how it works. You can't choose between different keys when using ssh-agent. One way is to start multiple ssh-agents and switch between them either using different wrappers for different github operations or just switching between ssh-agents (changing SSH_AUTH_SOCK) –  Cougar Nov 18 '11 at 17:41
2  
The comment above is incorrect -- you CAN choose identities from your ssh-agent. See also the answer I already mentioned above, superuser.com/questions/273037/… –  Stijn Hoop Feb 20 '13 at 14:20

I finally got it to work:

Host USER1.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER1.id_rsa

Host USER2.git
  User git
  HostName github.com
  IdentityFile ~/.ssh/USER2.id_rsa
  • Indentation counts.
  • Do ssh-add -l and make sure both of your keys have been added.
    • Copy/paste each path from ssh-add -l into the appropriate line in ~/.ssh/config to avoid typos. If there is a ~/.ssh/config identityfile path typo for USER1, then the wrong key (USER2's key) will be used instead.

I got the instructions over at BitBucket. They should work for GitHub since the only difference is HostName: http://confluence.atlassian.com/pages/viewpage.action?pageId=271943168#ConfiguringMultipleSSHIdentitiesforGitBashMacOSXLinux-CreateaSSHconfigfile

To get this to work on a remote server using agent forwarding, try @stijn-hoop's suggestion below (in the comments section of this answer).

share|improve this answer
1  
For your last comment re agent forwarding, see this answer: superuser.com/questions/273037/… –  Stijn Hoop Feb 20 '13 at 14:19
    
Cool. Thanks very much. –  dgo.a Feb 26 '13 at 7:30

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.