Skip to main content

Command Palette

Search for a command to run...

How to Set Up SSH Keys for GitHub: Step-by-Step Instructions

Updated
3 min read
How to Set Up SSH Keys for GitHub: Step-by-Step Instructions

When working with GitHub, using SSH for authentication is a secure and efficient approach. Recently, I ran into an issue where my GitHub push attempts were met with a frustrating Permission denied (publickey) error. If you’re in the same boat, don’t worry! This article walks you through generating and adding an SSH key for GitHub, step by step.

1. Checking the Current SSH Configuration

First, let’s check if there are any existing SSH keys:

ls -al ~/.ssh

This command lists all the files in the .ssh directory. If you see files like id_rsa or id_ed25519, you likely already have SSH keys set up. In my case, the directory only contained authorized_keys and known_hosts, meaning no SSH key pair was available.

2. Generating a New SSH Key Pair

Since there was no key, I generated a new SSH key pair using the ED25519 algorithm, which is more secure and faster than RSA:

ssh-keygen -t ed25519 -C "your-email@example.com"

You’ll be prompted for a file location — just press Enter to accept the default (/home/yourusername/.ssh/id_ed25519). Then, enter a passphrase for added security (or leave it empty for convenience). Once done, you’ll see output like this:

Your identification has been saved in /home/yourusername/.ssh/id_ed25519
Your public key has been saved in /home/yourusername/.ssh/id_ed25519.pub

3. Starting the SSH Agent

The SSH agent manages your SSH keys, so you don’t need to enter the passphrase every time. Start it like this:

eval "$(ssh-agent -s)"

You’ll see a message like Agent pid 54866, confirming the agent is running.

4. Adding the SSH Key to the Agent

Now, add the private key to the agent:

ssh-add ~/.ssh/id_ed25519

If everything’s set up correctly, you won’t see any errors.

5. Adding the SSH Key to GitHub

The next step is to add your public key (id_ed25519.pub) to GitHub. Display the key with this command:

cat ~/.ssh/id_ed25519.pub

Copy the output and go to your GitHub account:

  1. Go to SettingsSSH and GPG keys.

  2. Click New SSH key.

  3. Paste the copied key and give it a name.

  4. Click Add SSH key.

6. Testing the SSH Connection

Let’s confirm everything works:

ssh -T git@github.com

If it’s successful, you’ll see a message like this:

Hi your-github-username! You've successfully authenticated.

7. Pushing to GitHub

Finally, try pushing your code again:

git push -u origin main

Everything should work perfectly now! 🎉


Final Thoughts Setting up SSH for GitHub takes a few steps, but once it’s done, you’ll have a secure and password-free way to manage your repositories. If you run into any snags, double-check your SSH agent, key permissions, and GitHub key settings.

Happy coding! 🚀

More from this blog

K

Kumar Chaudhary

21 posts