TIL: Using Multiple SSH Keys
Today I learned how to use multiple SSH keys one a computer.
At work, all projects are hosted on our company’s internal git server running GitLab CE. while I put all my personal projects on GitHub.
I wanted to use different keys for GitLab and GitHub. So that I can have different passphrases for each SSH key, making it a bit more secure.
Or even different SSH key type on GitHub and GitLab. From the docs, GitHub uses RSA key while GitLab recommends ED25519 over RSA.
I use RSA key for both services for now.
Generating SSH Keys
I generated 2 SSH key pairs. The default one is for company’s work at GitLab.
$ ssh-keygen -t rsa -b 4096 -C "work-email@company.com"
and another pair for GitHub stored at ~/.ssh/github
.
$ ssh-key -t rsa -b 4096 -C "personal@email.com" -f ~/.ssh/github
In my ~/.ssh/
folder, I have 2 pairs of SSH keys.
$ ls -1 ~/.ssh id_rsa id_rsa.pub github github.pub
Now I have to tell SSH client to use the different private key for GitHub.
In ~/.ssh/config
file, add a new configuration for GitHub.com:
host github.com identityfile ~/.ssh/github
This means every time it has to make a connection to github.com
, use another private key at~/.ssh/github
instead of the default one. This includes git as well.
I added the public key ~/.ssh/github.pub
to my GitHub account settings page.
and make a test connection to verify that it works.
$ ssh -T git@github.com Hi armno! You've successfully authenticated, but GitHub does not provide shell access.
Originally published at https://armno.in.th on August 14, 2019.