SSH stands for “Secure Shell” and is an encrypted protocol used to log in and manage a remote server. SSH also supports various authentication mechanisms. SSH uses password-based authentication and public key-based authentication for a secure connection between a client and a server. SSH key-based authentication is more secure than password-based authentication because keys are very hard to guess or crack using currently available computing power.

In this tutorial, we will show you how to set up SSH key-based authentication on an Ubuntu 18.04 server.

Jan 14, 2020  Key generation with PuTTY. Duration: 3:00. To generate a key pair with the PuTTY key generator, simply run puttygen.exe and click the Generate button in the window that appears. You will be asked to move the mouse and press keys to improve the random number generation at the heart of SSH.

Prerequisites

  • Creating an SSH key on Windows 1. Check for existing SSH keys. You should check for existing SSH keys on your local computer. You can use an existing SSH key with Bitbucket Server if you want, in which case you can go straight to either SSH user keys for personal use or SSH access keys for system use. Open a command prompt, and run.
  • If your Windows is Windows 10 Version 1803 like here, OpenSSH Client has been implemented as a Windows feature, so it's possbile to authenticate with SSH Key-Pair without Putty and others. Transfer the secret key to your Windows 10 and put it uder the (logon user home).ssh folder like follows, then it's ready to use Key-Pair login.
  • Create an SSH key pair. Use the ssh-keygen command to generate SSH public and private key files. By default, these files are created in the /.ssh directory. You can specify a different location, and an optional password (passphrase) to access the private key file. If an SSH key pair with the same name exists in the given location, those files are overwritten. The following command creates an SSH key pair using RSA encryption and a bit length of 4096.
  • Two fresh Ubuntu 18.04 VPS on the Atlantic.Net Cloud Platform.
  • Root passwords configured on both servers.

Step 1 – Create an Atlantic.Net Cloud Server

First, log in to your Atlantic.Net Cloud Server. Create a new server, choosing Ubuntu 18.04 as the operating system with at least 2GB RAM. Connect to your Cloud Server via SSH and log in using the credentials highlighted at the top of the page.

Once you are logged into your Ubuntu 18.04 server, run the following command to update your base system with the latest available packages.

Step 2 – Generate the SSH Key on the Client Machine

First, log in to your client machine and generate a new SSH key pair by running the following command:

You will need to press Enter to accept the default file location and provide a passphrase to add an extra layer of security, as shown below:

The above command will generate a 2048-bit RSA key pair with a secure passphrase to prevent unauthorized users from logging in.

You can see the generated public and private keys with the following command:

You should see the following output:

At this point, you have public and private keys that you can use to authenticate with your Ubuntu server.

Step 3 – Copy the Public Key to the Ubuntu Server

Next, you will need to copy the public key from the client machine to your Ubuntu 18.04 server. You can copy the public key with ssh-copy-id utility as shown below:

You should see the following output:

How Generate Ssh Key Pair Ubuntu Windows 10

Type “yes” and press ENTER to continue. You should see the following output:

Next, you will be prompted to enter the remote username and password. After the successful authentication, the content of the public key ~/.ssh/id_rsa.pub will be appended to the remote user ~/.ssh/authorized_keys file as shown below:

Step 4 – Disable SSH Password Authentication

Next, log in to your Ubuntu 18.04 server machine and disable SSH password-based authentication to add an extra layer of security to your server.

You can disable password-based authentication by editing the file /etc/ssh/sshd_config:

Find the following lines and change the value to “no”:

Save and close the file, then restart SSH service to apply the configuration:

Step 5 – Log in to the Server using SSH Keys

At this point, SSH key-based authentication is configured. Now it’s time to log in to the Ubuntu 18.04 server machine with the public key.

You can login to your Ubuntu 18.04 server by simply running the following command:

If you are logging in for the first time, you will be prompted as shown below:

Create Ssh Keys Ubuntu

Type Yes and hit Enter key to continue. Next, you will be prompted to enter the passphrase for your private key as shown below:

Provide your private key passphrase and hit Enter to log in to your server.

Conclusion

In the above tutorial, we learned how to set up an SSH key-based authentication with a passphrase on Ubuntu 18.04. The connection between your client machine and Ubuntu 18.04 server machine is now highly secure. You can also use the same key for another remote server. If you’re ready to get started with SSH key-based authentication, try VPS hosting with Atlantic.Net today.