How to generate a SSH key and add your public key to the server for authentication

SSH keys are an easy way to identify trusted computers, without involving passwords. The steps below will walk you through generating an SSH key and adding the public key to the server.

Check for existing SSH Keys

First, check for existing SSH keys on your computer. Open Git Bash, Cygwin, or Terminal, etc. and enter the following command

# List all the files in your .ssh directory, if it exists
ls -al ~/.ssh

Check the directory listing to see if you already have a public SSH key. By default, the filenames of the public keys are typically one of the following

  • id_dsa.pub
  • is_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

If you see an existing public and private key pair listed (for example id_rsa.pub and id_rsa) that you'd like to use, you can skip ahead to adding your key to the ssh-agent.

Generate a new SSH key

With your command line tool still open, enter the text shown below. Make sure you substitute in your email address

# Create a new ssh key, using your email address
ssh-keygen -t ed25519 -C "marty@thepinheads.com"

# NOTE: If you are using a legacy system that doesn't support the Ed25519 algorithm, use:
ssh-keygen -t rsa -b 4096 -C "marty@thepinheads.com"

Generating public/private rsa key pair.

You'll be asked to enter a passphrase, or simply press Enter for no passphrase

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

After you enter a passphrase (or just press Enter twice), review the fingerprint, or 'id' of your SSH key

Your identification has been saved in /Users/username/.ssh/id_ed25519.
Your public key has been saved in /Users/username/.ssh/id_ed25519.pub.
The key fingerprint is:
nss2VhNB0Y62VIToM+/qYe3HS4TPXmrhuBxjUz4l/I8= your@email.com

Add your key to the ssh-agent

To configure the ssh-agent program to use your SSH key, first ensure ssh-agent is enabled.

# start the ssh-agent in the background
eval $(ssh-agent -s)
Agent pid 59566

Note: If you are using Git Bash, enable the ssh-agent with command shown below instead

# start the ssh-agent in the background
eval `ssh-agent`
Agent pid 59566

Then, add your SSH key to the ssh-agent

ssh-add ~/.ssh/id_ed25519

Add your SSH key to the server

To add your public SSH key to the server, you'll copy the public SSH key you just created to the server. Substitute "username" with your username on the server, and "server.address.com" with the domain address or IP address of your server

cat ~/.ssh/id_ed25519.pub | ssh username@server.address.com 'cat >> ~/.ssh/authorized_keys'

The server will then prompt you for your password. Type in the password you created when you generated a new ssh key (or just press enter if you did not add a password)

username@server.address.com's password:

That's it! You should now be set up to connect to the server without having to authenticate.