I have been using ssh keys for all my ssh authentication for years, but for some reason after upgrading to OSX Mojave I found that my key based authentication would no longer work. So I used the following command to add my ssh key to the keychain and things were working well, or so I thought.
ssh-add -K ~/.ssh/[your-private-key]
This command did fix the issue, and I was able to perform ssh key based authentication again just fine… until I rebooted my mac. Fortunately my mac didn’t need to be rebooted very frequently, but then each time I would end up rebooting I would face the same conundrum… “Why am I not able to authenticate with my servers… oh right my key isn’t loaded…”. I needed to find a way to permanently add my ssh key to the keychain in OSX Mojave.
It turns out that this is a relatively simple procedure, once you know what to do. In the
~/.ssh/config
file you can add specific host entries to allow you to use specific settings, ciphers, keys, etc with a certain host. Or general settings to be used for all hosts. So I just added the following line to the “Host *” section of the file
IdentityFile ~/.ssh/id_rsa
And voilà they key is used each time you open an ssh connection, for any host.