Stop being asked for your ssh key password
Introduction
I have been using ssh keys to access my GitHub and GitLab for a while now, but one thing that has always annoyed me was how if I have a password on my ssh key I need to re-enter my password each time I use it.
Now, I hear you ask why I would want to have a password on my ssh keys. Well, I can be a bit paranoid sometimes. The reason is that if someone somehow gains access to my computer, they would have access to everything if I don’t have a password. Adding an ssh key password is just another stop-gap between being completely owned and not.
How to generate a secure ssh key.
I am sure you have all seen this Generating a new SSH key, so I won’t go over it here. The only difference is that we will be entering a passphrase when prompted, as opposed to leaving it blank.
Now that we have a passphrase protected ssh key, we can add it to our GitHub account following these instructions: Adding a new SSH key to your GitHub account
We want to add our newly created ssh key into our ssh config file. I like to
separate my personal GitHub accounts, and my work GitHub accounts, so I have
added the following into my ~/.ssh/config
file:
Host gh_personal
HostName github.com
User git
AddKeysToAgent yes
IdentityFile ~/.ssh/personal-github
Once you have this set up you can test that it all works by cloning a repo this should prompt you for a password, but then after that you should not be asked for the password again:
git clone [email protected]:torvalds/linux.git
The main thing that was added was the AddKeysToAgent yes
line. What this does
it that it will add the keys to the ssh-agent that is currently running,
meaning that you will not need to enter your password again and again, more
info can be found here: https://man.openbsd.org/ssh_config.5#AddKeysToAgent