Understanding SSH

February 20, 2020

What is SSH? #

When you want to manually access your deployment rather than manage it through the Smoothy interface, you can open up a terminal window and "SSH" into your deployment. To do so, you run a command similar to the one below, in which smoothy is a Linux user on your deployment and 253.186.16.152 is the IP address of your deployment.

ssh smoothy@253.186.16.152

The Secure SHell or SSH protocol then sets up a secure connection between your computer and your deployment over which you can send commands and receive their output.

What are SSH keys? #

Before an SSH connection is established and a deployment starts listening for commands, the deployment verifies that the computer on the other side of the connection is actually your computer and not the one of your neighbor or competitor.

To perform this authentication, the SSH protocol makes use of public-key cryptography. This method implies that before you can initiate an SSH connection from your computer, you need to generate an SSH key-pair.

This key-pair consists of two files containing a long string of characters:

  1. A public key stored in a file called ~/.ssh/id_rsa.pub
  2. A private key stored in a file called ~/.ssh/id_rsa

You can think of the private key as a unique identifier for your computer. Therefore, you should never share this file with someone else! The public key, on the other hand, needs to be installed on all your deployments with which you like to communicate over SSH.

Once both keys are in place, you can initiate an SSH connection between your computer and your deployment. The SSH protocol will then verify the authenticity of your computer as follows:

SSH authentication flow

Where to go from here? #

If your computer does not have an SSH key-pair yet, you can learn how to generate one by following this step-by-step guide.

If you already have an SSH key-pair on your computer and want to install the public key on your deployment, you should follow this tutorial.

If you have already accomplished both of these steps and want to initiate an SSH connection between your computer and your deployment, you can learn how to do so here.

Michiel Kempen

Michiel Kempen

A passionate cloud engineer who helps software companies adopt modern cloud technologies through an intelligent all-in-one cloud platform called Smoothy.