Are you using HTTPS protocol to communicate between your local repos and Github? If yes, then just think–all of that time you spent entering your email address and password into the terminal every time you push a commit could have been spent coding. Guess what? you could have saved all that time by simply enabling SSH for your GitHub account. In this post, we will try to create an SSH key and add it to your Github account for "better" way of GitHub authentication.
SSH or Secure Socket Shell, is a network protocol that gives users a secure way to access a computer over an unsecured network. It allows the remotely login to a server using the connection established between your system's shell and the server's shell.
Navigate to your $HOME and change into
Inside the .ssh folder, you can generate a key using the following command:
ssh-keygen -t rsa -b 4096 -C email@example.com
Replacing firstname.lastname@example.org with your Github email. You can either keep the default filename
id_rsa or you can provide a custom file name.
ssh-keygen command creates RSA and DSA keys for public key authentication. It can also used to edit properties of existing keys, and to convert file formats. The command takes the following options
ssh-keygen [-b bits] -t alog-type [-N [passphrase]] [-C comment] [-f output_keyfile]
When no options are specified,ssh-keygengenerates a 2048-bit RSA key pair and queries you for a key name and a passphrase to protect the private key. Public keys are created using the same base name as the private key, with an added .pub extension. The key location is displayed when key generation is complete.
Important Note: You should never reveal your private key, and only use your public key for things like GitHub authentication.
ssh-agent is a program that starts when you log in to your system. It has all your private keys. To add the key to the
ssh-agent first we need to check if it is up and running.
// If you are on Mac/Linux: eval "$(ssh-agent -s)" # for Mac and Linux // If you are using Windows use: eval `ssh-agent -s` ssh-agent -s
You can then move ahead to add your key to the agent by using the following command:
Note: If you used a custom file name for your keys, use that instead of
Now we have to copy our public key:
// For linux/mac terminal use this: cat ~/.ssh/id_rsa.pub # Linux //For Windows use this: clip < ~/.ssh/id_rsa.pub
Go to your GitHub Account -> Settings -> SSH & GPG Keys.
Click on add new key.
Provide a title and paste in your public (id_rsa.pub) key:
Try this in the terminal
ssh -T email@example.com
If everything goes well, it will return:
Hi GithubName! You've successfully authenticated, but GitHub does not provide shell access.
Note: If you provided a passphrase during generating the key, you might have to use that as the password.
That's it you have successfully generated and configured an SSH key for your Github authentication. Happy Coding !!!