When I’m setting up a new computer, one of the tasks I need to do is set up new SSH keys to access different servers. It’s good practice not to use the same key for different services. Keys are useful so you don’t need to type your credentials in all the time when working on a trusted PC.

Instead of typing something like: ssh thekua@github.com I can just simply type ssh github without being prompted for credentials. Less typing. Win!

After you generate several different keys, you can either add them to the command line when using ssh, but it’s easier just to use the config file (typically found at ~/.ssh/config).

Here’s an example config file you might have assuming you have three different projects:

Host github
    HostName github.com
    User git
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/github_rsa
Host gitlab
    HostName gitlab.com
    User git
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/gitlab_rsa
Host ossproject
    Hostname myossproject.someserver.com
    User thekua
    AddKeysToAgent yes
    UseKeychain yes
    IdentityFile ~/.ssh/myossprojectcreds_rsa

If you have properly installed all of your public keys on the appropriate server, then you should now be able to use the following commands:

ssh github
ssh gitlab
ssh ossproject

Each of these will use different credentials and not know about each other – w00t!