How to Set Up SSH Key Authentication On Linux

How to make your Secure Shell connections even more secure

SSH Key Authentication On Linux,Secure Shell is the most broadly-used manner of logging into a remote Linux server (or laptop). By the use of this tool, you benefit get right of entry to to the command line on a remote machine, through a secure tunnel. Out of the box, you’ll be precipitated to kind the far off user’s password. Although that is nevertheless greater cozy than the usage of the older techniques (including telnet), it could be made even greater comfy with SSH Key Authentication.

What is Key Authentication?

Understanding Key Authentication is sincerely quite easy. Imagine you’ve got a lock and the handiest manner to open that lock is with a selected key that the lock knows belongs to you. How does the lock recognize the key belongs to you? Because the key consists of a signature this is specific to you. Within the lock there is an identical signature the key uses for comparison. Should the signatures healthy, they lock will open. Should the important thing fit, but the signatures now not healthy, the lock won’t open.

That’s the basis for SSH Key Authentication. How it works in real lifestyles is that you create a key pair (which incorporates a personal and public key), and replica the general public key to the server you want to log into. If you try to login with key authentication, and the server doesn’t have the public key that matches your non-public key, it won’t allow you access.

Let’s make this paintings.

SSH Key Authentication On Linux,Generating an SSH Key Pair

SSH Key Authentication On Linux,The first thing to do is generate an SSH Key Pair. To do that, follow these steps:

01 Open a terminal window on your desktop.

Issue the command:

ssh-keygen

Give the key a name and location (go along with the default by the use of Enter/Return to your keyboard).

02 Enter and verify a passphrase for the key (make sure this passphrase is robust and unique)

You now have an SSH key pair. These two files may be found in ~/.Ssh and can be named:

  • id_rsa – The non-public key.
  • Id_rsa.Pub – The public key.

SSH Key Authentication On Linux,Copy Your Public Key to the Remote Machine

SSH Key Authentication On Linux,Next you have to replica the public key record to the faraway system you need to log into. This may be performed with the command:

ssh-copy-id USER@REMOTE_IP

Where USER is a username at the far off system and REMOTE_IP is the IP cope with of the faraway gadget.

If that is the primary time you’ve at ease shelled into the far flung system, you may be induced to type yes to hold with the connection, otherwise you’ll be brought on to kind the person password on the remote device. Once you’ve correctly typed your far off password, the key will be copied and also you’re equipped to test the relationship.

Testing The Connection

Test the connection by issuing the command:

ssh USER@REMOTE_IP

Where USER is a username at the remote gadget and REMOTE_IP is the IP deal with of the remote gadget. Instead of being prompted for the user password, you’ll be triggered for the SSH key pair passphrase. Once you’ve typed the best key passphrase, you’ll be allowed get admission to to the remote gadget. Congratulations, SSH Key Authentication is up and running.

SSH Key Authentication On Linux,Disabling Password Authentication

SSH Key Authentication On Linux,You can take this one step further with the aid of disabling password authentication. With this configuration in place, the simplest manner to gain get right of entry to to the far off system is from a device containing the non-public key from the matching pair. In different words, no key pair, no access.

To disable password authentication, log into the far flung machine and difficulty the command:

sudo nano /etc/ssh/sshd_config

In this file, look for the line:

#PasswordAuthentication yes

Change that line to:

PasswordAuthentication no

Save and close the report. Restart SSH with the command:

sudo systemctl restart sshd

Now, in case you try to log into that far off system from any computer (or server) that doesn’t consist of the non-public key, get entry to could be denied.

Congratulations, you’ve got efficiently made logging into your remote Linux gadget more secure with SSH.