DEV Community

Cover image for Git | Connecting to GitHub and Pushing Changes Using SSH on Windows
Hassan BOLAJRAF
Hassan BOLAJRAF

Posted on

26 1

Git | Connecting to GitHub and Pushing Changes Using SSH on Windows

Note
You can check other posts on my personal website: https://hbolajraf.net

Connecting to GitHub and pushing changes using SSH on a Windows machine involves several steps:

  1. Generate SSH Key Pair
  2. Add SSH Key to GitHub Account
  3. Configure SSH for GitHub
  4. Clone Repository or Add Remote URL
  5. Commit and Push Changes

Step-by-Step Instructions

1. Generate SSH Key Pair

  1. Open Git Bash on your Windows machine.
  2. Generate a new SSH key pair by running:
   ssh-keygen -t rsa -b 4096 -C "hassan.bolajraf@gmail.com"
Enter fullscreen mode Exit fullscreen mode

Replace hassan.bolajraf@gmail.com with your GitHub email address. When prompted, save the key to the default location (/c/Users/your_username/.ssh/id_rsa) and optionally set a passphrase.

2. Add SSH Key to GitHub Account

  1. Copy the SSH key to your clipboard. You can use the following command to do this:
   cat ~/.ssh/id_rsa.pub | clip
Enter fullscreen mode Exit fullscreen mode
  1. Log in to your GitHub account.
  2. Go to Settings > SSH and GPG keys.
  3. Click New SSH key.
  4. Paste the copied SSH key into the key field and give it a descriptive title.
  5. Click Add SSH key.

Image description

3. Configure SSH for GitHub

  1. Ensure your SSH agent is running. Start the SSH agent by running:
   eval "$(ssh-agent -s)"
Enter fullscreen mode Exit fullscreen mode
  1. Add your SSH private key to the SSH agent:
   ssh-add ~/.ssh/id_rsa
Enter fullscreen mode Exit fullscreen mode

4. Clone Repository or Add Remote URL

If you haven't cloned your repository yet, you can do so using SSH:

  1. Go to your repository on GitHub.
  2. Click on the Code button and copy the SSH URL (it looks like git@github.com:username/repository.git).
  3. Clone the repository:
   git clone git@github.com:username/repository.git
Enter fullscreen mode Exit fullscreen mode

If you already have a repository cloned using HTTPS and want to switch to SSH, you can change the remote URL:

  1. Navigate to your repository directory in Git Bash.
  2. Change the remote URL:
   git remote set-url origin git@github.com:username/repository.git
Enter fullscreen mode Exit fullscreen mode

5. Commit and Push Changes

  1. Make your changes and stage them for commit:
   git add .
Enter fullscreen mode Exit fullscreen mode
  1. Commit your changes:
   git commit -m "Your commit message"
Enter fullscreen mode Exit fullscreen mode
  1. Push your changes to GitHub:
   git push origin main
Enter fullscreen mode Exit fullscreen mode

Replace main with the name of your branch if you're working on a different branch.

Additional Tips

  • Verify SSH Connection: You can test your SSH connection to GitHub by running:
  ssh -T git@github.com
Enter fullscreen mode Exit fullscreen mode

This should return a success message like Hi username! You've successfully authenticated.

  • SSH Key Management: If you manage multiple SSH keys, you can create a ~/.ssh/config file to specify which key to use for GitHub:
  Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_rsa
Enter fullscreen mode Exit fullscreen mode

What next ?

By following these steps, you should be able to connect to GitHub and push changes using SSH on your Windows machine.

Image of Datadog

The Essential Toolkit for Front-end Developers

Take a user-centric approach to front-end monitoring that evolves alongside increasingly complex frameworks and single-page applications.

Get The Kit

Top comments (1)

Collapse
 
saberrg profile image
Saber

very helpful! Was just able to follow along and do it right!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay