with - use private key git clone
GIT select private key to use (4)
I have 2 Git servers that require 2 different SSH keys.
git clone [email protected]:blahblahblah uses
~/.ssh/id_rsa, but I need to specify which key to use depending on the server I am connecting to.
What Git command-line parameter does this job? (I am running Linux)
Generally, you want to use
~/.ssh/config for this. Simply pair server addresses with the keys you want to use for them as follows:
Host github.com IdentityFile ~/.ssh/id_rsa.github Host heroku.com IdentityFile ~/.ssh/id_rsa.heroku Host * IdentityFile ~/.ssh/id_rsa
Host * denotes any server, so I use it to set
~/.ssh/id_rsa as the default key to use.
If you are connecting via SSH then the key will be controlled by an SSH parameter, not a git parameter.
SSH looks in the
~/.ssh/config file for configuration parameters. Modify that file and add IdentityFile entries for the two Git servers like this:
Host server1.whatever.com IdentityFile /path/to/key_1 Host server2.whatever.com IdentityFile /path/to/key_2
This article has some more details.
There is another possibility. That's to set
git config --local core.sshCommand "/usr/bin/ssh -i /home/me/.ssh/id_rsa_foo"
There's one particular scenario when this strategy is particularly useful: that's when you have multiple accounts on Github, as all accounts
ssh to Github as
[email protected] and it uses the
ssh key to determine which Github user you are. In this case neither
ssh-agent will do what you want.
ssh-add path-to-private-key it works out of the box.