Open In App
Related Articles

Using GitHub with SSH (Secure Shell)

Improve Article
Save Article
Like Article

Secure Shell (SSH) Protocol facilitates the communication among systems in an unsecured network by providing a secure channel over it. It safeguards the connection to remote servers enabling user authentication.

Using SSH, you can connect to your GitHub account eliminating the need of giving username and password each time you push changes to the remote repository. The integration process involves setting up SSH Keys within both the local and remote systems.

Connect to GitHub using SSH

Note: If you already have an existing SSH key, you can skip step 1 and go to step 2. You can verify the same by listing all the existing keys using the command:

 $ ls -al ~/.ssh 
Steps to connect GitHub to SSH :

Step 1: Generate SSH Key on Local System

  • Launch Terminal / Git Bash.
  • Paste the below command and substitute your GitHub email address:
     $ ssh-keygen -t rsa -b 4096 -C "" 

  • Press Enter when prompted “Enter a file in which to save the key”.
  • Type a passphrase of your choice.
  • Verify creation of SSH Key:
     $ ls -al ~/.ssh 

Step 2: Add SSH Key to SSH Agent

  • Initiate ssh-agent:
     $ eval "$(ssh-agent -s)" 
  • If your key is generated with a different name, replace id_rsa in the command below:
     $ ssh-add ~/.ssh/id_rsa 

Step 3: Add the SSH Key to your GitHub Account

  • Copy key to the clipboard:
    $ clip < ~/.ssh/
    $ sudo apt-get install xclip
    $ xclip -sel clip < ~/.ssh/
    $ pbcopy < ~/.ssh/
  • Open the GitHub website and log in to your account. Go to the settings page from the menu in top right corner.
  • Select “SSH and GPG keys” from the sidebar and click on “New SSH key” option.
  • Add relevant title in the “Title” field and paste the SSH key in the “Key field“.
  • Now, click on “Add SSH key“.

Step 4: Test the SSH Connection

  • Launch Terminal / Git Bash.
  • Type:
     $ ssh -T 

  • Connection is established if you are prompted with the following message:

    Hi {username}! You’ve successfully authenticated, but GitHub does not provide shell access.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 21 Apr, 2020
Like Article
Save Article
Similar Reads
Complete Tutorials