Managing multiple SSH identities
13 Feb 2017Sometimes, it makes sense to have multiple SSH identites. This can certainly be the case if you’re doing work with your own personal accounts, vs. doing work for your job. You’re not going to want to use your work account for your personal stuff.
In today’s post, I’m going to run through the few steps that you need to take in order to manage multiple SSH identities.
Different identities
First up, we generate two different identities:
ssh-keygen -t rsa -C "user@work.com"
When asked, make sure you give the file a unique name:
Enter file in which to save the key (/home/michael/.ssh/id_rsa): ~/.ssh/id_rsa_work
Now, we create the identity for home.
ssh-keygen -t rsa -C "user@home.com"
Again, set the file name so they don’t collide:
Enter file in which to save the key (/home/michael/.ssh/id_rsa): ~/.ssh/id_rsa_home
Now, we should have the following:
id_rsa_home
id_rsa_home.pub
id_rsa_work
id_rsa_work.pub
Configuration
Now we create a configuration file that ties all of the identities up. Start editing ~/.ssh/config
:
# Home account
Host home-server.com
HostName home-server.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_home
# Company account
Host work-server.com
HostName work-server.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_work
Delete all of the cached keys:
ssh-add -D
If you see the error message Could not open a connection to your authentication agent.
you’ll need to run the following:
ssh-agent -s
Add your keys
You can now list your keys with:
ssh-add -l
You can add your keys back in with the following:
ssh-add ~/.ssh/id_rsa_work
ssh-add ~/.ssh/id_rsa_home
That’s it!