Generating a new SSH key and adding it to the ssh-agent
Most of you seasoned developers are use to SSH keys, this was something new to me. So this is how I went about setting up my dev enviroment to use them.
First we need to check for existing SSH keys
- Open Terminal
- Enter
ls -al ~./ssh
to see if existing SSH keys are present:
$ ls -al ~/.ssh
# Lists the files in your .ssh directory, if they exist
- Check the directory listing to see if you already have a public SSH key. By default, the filenames of the public keys are one of the following:
- id_dsa.pub
- id_ecdsa.pub
- id_ed25519.pub
- id_rsa.pub
If you don't have an existing public and private key pair. Then we can Generate a new SSH key.
Generating a new SSH key
-
Open Terminal
-
Paste the text below, substituting in your GitHub email address.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
This creates a new ssh key, using the provided email as a label.
> This creates a new ssh key, using the provided email as a label.
-
When you're prompted to "Enter a file in which to save the key," press Enter. This accepts the default file location.
Enter a file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]
-
At the prompt, type a secure passphrase. For more information, see "Working with SSH key passphrases".
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
Now adding the SSH ket to the ssh-agent
When adding your SSH key to the agent, use the default macOS ssh-add
command!!
- Start the ssh-agent in the background.
$ eval "$(ssh-agent -s)"
> Agent pid 59566
- If you're using macOS Sierra 10.12.2 or later, you will need to modify your
~/.ssh/config
file to automatically load keys into the ssh-agent and store passphrases in your keychain.
Host *
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
- Add your SSH private key to the ssh-agent and store your passphrase in the keychain. If you created your key with a different name, or if you are adding an existing key that has a different name, replace id_rsa in the command with the name of your private key file.
$ ssh-add -K ~/.ssh/id_rsa
Note: The -K
option is Apple's standard version of ssh-add, which stores the passphrase in your keychain for you when you add an ssh key to the ssh-agent.
Now its time to Adding a new SSH key to your GitHub account
I have bascially ripped off the tutorial from Help GitHub but this is mainly for my reference so I can have access to quickly.