Quick Bite: SSH Key

npranto

Nazmuz Shakib Pranto

Posted on December 4, 2021

Quick Bite: SSH Key

SSH stands for - "Secure Shell"

It is a protocol that enables secure communication between 2 machines over the internet

An SSH key is just a secure alternative to email/password authentication to identify yourself as a valid contributor to a remote repository on GitHub, GitLab, and Bitbucket.

Entering an email and password can become a pain any time you may want to clone down or push your code up to a remote source, thus setting up SSH keys will save you some time, not to mention the added layer of security through encryption between communications.

SSH keys are generated using a combination of symmetric and asymmetric encryption as well as hashing to provide a secure tunnel when sharing data between devices.


Use Cases for SSH?

  • when you want to access another computer or a server remotely from your local machine
  • when you want to clone down or push changes to a remote repository sitting on GitHub, GitLab, or Bitbucket servers

How To Generate an SSH Key?

Prerequisites:

  • macOS
  • Terminal (built-in on macOS) / iTerm

Steps:

  1. Open Terminal (CMD + SPACE, search for "terminal", open Terminal.app)

  2. Run cd ~/.ssh

  3. Run ls

  4. If you see id_rsa.pub file, then you already have an SSH key (no need to generate a new one)

  5. To generate a new key, run ssh-keygen -t rsa -b 4096 -C "<EMAIL>" (replace <EMAIL> with your email)

  6. Next, you will be asked where you want to save your SSH key - just press RETURN key to accept the default location (/Users/<USERNAME>/.ssh/id_rsa)

  7. After that, a secure passphrase - press RETURN key twice to skip that step as well (generally, you don't need to set up a passphrase for SSH key)

  8. Finally, you should see a confirmation stating that your identification and the public key have been saved.

  9. That's it! Now, you have an SSH key on your local machine

Ok, great! Now, I have an SSH key. Wait… how do I access it?

How to Access SSH Key On Your Local Machine?

  • Open Terminal (CMD + SPACE, search for "terminal", open Terminal.app)
  • Run pbcopy < ~/.ssh/id_rsa.pub (to copy SSH key to clipboard)
  • Paste (CMD + v) to see your public SSH key

Ok, so now I have copied the SSH key, what do I do with it?


How To Add SSH Key to GitHub?

Step 1 - Go to https://github.com/

Step 2- Log into your account

Step 3- From the top right profile dropdown, choose "Settings"

Settings from profile dropdown

Step 4- Now, from the left vertical menu list, click on "SSH and GPG keys"

SSH and GPG keys option from menu list

Step 5- Under the SSH keys section, click on the green button - "New SSH key"

New SSH key button

Step 6- Now, fill in the details for the "Title" and "Key" fields

  • "Title" - the identifier for the SSH key, i.e., "Macbook Air (2020)"
  • "Key" - the public key you copied on your clipboard earlier

SSH key and Title fields

Step 7- Finally, click on "Add SSH key"


How To Add SSH Key to GitLab?

Step 1 - Go to https://gitlab.com/users/sign_in

Step 2- Log into your account

Step 3- From the top right profile dropdown, choose "Preferences"

Preferences from profile dropdown

Step 4- Now, from the left vertical menu list, click on "SSH Keys"

SSH Keys from menu list

Step 5- Now, fill in the details for "Key", "Title" and "Expires at" fields:

  • "Key" - the public key you copied on your clipboard earlier
  • "Title" - the identifier for the SSH key, i.e., "Macbook Air (2020)"
  • "Expires at" - when do you want the SSH key to expire

Key, Title and Expires at fields

Step 6- Finally, click on "Add SSH key"


How To Add SSH Key to Bitbucket?

Step 1- Go to https://bitbucket.org/

Step 2- Log into your account

Step 3- From the bottom left profile avatar dropdown, choose "Personal settings"

Personal settings from profile dropdown

Step 4- Now, under the "Personal settings" menu list on the left side, click on "SSH keys" under the "Security" section

SSH keys from personal settings list

Step 5- Click on "Add key"

Add key button

Step 6 - Fill in the fields for "Label" and "Key"

  • "Label" - the identifier for the SSH key, i.e., "Macbook Air (2020)"
  • "Key" - the public key you copied on your clipboard earlier

Fields for Label and Key

Step 7- Finally, click on "Add key" at the bottom


Now that you have added the SSH key to a remote account like GitHub, GitHub will no longer prompt you for your credentials (email and password) any time you clone a repository down or push updates to it.


How To Delete SSH Key from Local Machine?

  • Open Terminal (CMD + SPACE, search for "terminal", open Terminal.app)
  • Run rm ~/.ssh/id_rsa ~/.ssh/id_rsa.pub (deletes both public + private keys)

Already, that's all I had… hope that helps!


Before I leave, a few things…

  • 📑 bookmark this page in case you want to refer back to it later on
  • 👍 share this article with your peers or anyone who might need help setting up an SSH key
  • 💌 if I got anything wrong in this article, please leave a kind feedback

References:

💖 💪 🙅 🚩
npranto
Nazmuz Shakib Pranto

Posted on December 4, 2021

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Quick Bite: SSH Key
sshkey Quick Bite: SSH Key

December 4, 2021