DEV Community

Cover image for How to Set Up SSH Keys for GitHub: A Step-by-Step Guide
Starky Paulino
Starky Paulino

Posted on

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

When working with GitHub, using SSH keys is a secure and convenient way to authenticate your Git operations without needing to enter your username and password every time. This blog post will walk you through the process of setting up SSH keys for GitHub, making your workflow more efficient and secure.

What Are SSH Keys?
SSH (Secure Shell) keys are a pair of cryptographic keys used to authenticate a secure connection between your local machine and a remote server—in this case, GitHub. The pair consists of a private key (which you keep on your computer) and a public key (which you share with GitHub). When you push or pull code from a GitHub repository, SSH keys allow you to do so securely.

Step 1: Check for Existing SSH Keys
Before creating a new SSH key, it’s a good idea to check if you already have one. Open your terminal and run the following command:

bash
Copy code
ls -al ~/.ssh
This command lists the files in your .ssh directory (if it exists). If you see files named id_rsa and id_rsa.pub, you already have an SSH key pair. If not, proceed to the next step to generate a new one.

Step 2: Generate a New SSH Key
If you don’t have an SSH key or want to generate a new one, you can do so with the following command:

bash
Copy code
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
-t rsa: Specifies the type of key to create (RSA in this case).
-b 4096: Sets the key length to 4096 bits (a standard length for security).
-C "your_email@example.com": Adds a comment with your email address to help identify the key.
When prompted to "Enter a file in which to save the key," you can press Enter to accept the default location (/Users/your_user_name/.ssh/id_rsa).

Next, you’ll be asked to enter a passphrase. This step is optional, but adding a passphrase adds an extra layer of security. If you choose to add one, you’ll need to enter it every time you use the SSH key.

Step 3: Add Your SSH Key to the SSH-Agent
To manage your SSH keys securely, you’ll need to add your new SSH key to the SSH-agent, a background program that handles key management. Start the SSH-agent with the following command:

bash
Copy code
eval "$(ssh-agent -s)"
Then, add your SSH private key to the SSH-agent:

bash
Copy code
ssh-add ~/.ssh/id_rsa
If you’ve saved your key under a different name or location, be sure to specify the correct path.

Step 4: Add Your SSH Key to Your GitHub Account
Now that your SSH key is set up locally, the next step is to add the public key to your GitHub account.

Copy the SSH Key to Your Clipboard: Use the following command to copy your SSH key to your clipboard:

bash
Copy code
pbcopy < ~/.ssh/id_rsa.pub
If pbcopy isn’t available on your system, you can manually open the file and copy the contents:

bash
Copy code
cat ~/.ssh/id_rsa.pub
Add the SSH Key to GitHub:

Log in to your GitHub account.
Go to Settings > SSH and GPG keys.
Click New SSH key.
In the "Title" field, give your SSH key a name (e.g., "My Laptop").
Paste your SSH key into the "Key" field.
Click Add SSH key.
Step 5: Test Your SSH Connection
To ensure everything is set up correctly, test your SSH connection to GitHub by running:

bash
Copy code
ssh -T git@github.com
If this is your first time connecting, you may see a message asking if you want to continue connecting. Type yes and press Enter. You should then see a message like:

bash
Copy code
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
This message confirms that your SSH key is correctly configured and that you can now use SSH to communicate with GitHub.

Conclusion
Setting up SSH keys for GitHub is a one-time task that makes your workflow more secure and convenient. With SSH keys in place, you can push and pull code from your repositories without repeatedly entering your credentials, streamlining your development process.

Whether you're new to GitHub or looking to enhance your security practices, setting up SSH keys is a critical step toward a more efficient workflow. Follow the steps in this guide, and you’ll be ready to authenticate securely with GitHub in no time.

Happy coding!

Top comments (0)