Creating a Secure SSH Connection with Keys: Step-by-Step Guide

Creating a Secure SSH Connection with Keys: Step-by-Step Guide

ยท

2 min read

In today's tech-savvy world, securing your remote connections is paramount. SSH (Secure Shell) keys provide a robust and secure way to authenticate and communicate between a client and server. In this step-by-step guide, we will walk you through the process of creating a secure SSH connection between your client and server using SSH keys.

Step 1: Generate SSH Key Pair on the Client

The first step in establishing a secure SSH connection is to generate an SSH key pair on your client machine. Follow these steps:

  1. Open a Terminal: Launch a terminal on your local machine, which serves as the client.

  2. Generate SSH Key Pair: Run the following command to generate the SSH key pair:

     ssh-keygen -t rsa -b 2048
    

    This command creates a private key (id_rsa) and a corresponding public key (id_rsa.pub) in the ~/.ssh/ directory.

  3. Set a Passphrase (Optional): For an extra layer of security, you can set a passphrase for your private key.

Step 2: Copy the Public Key to the Server

To securely copy your public key to the server, follow these steps:

  1. Copy the Public Key to the Server: Use the scp command to copy your public key (id_rsa.pub) to the server. Replace username with your server's username and server_ip_or_hostname with the server's IP address or hostname:

     scp ~/.ssh/id_rsa.pub username@server_ip_or_hostname:~/
    
  2. Install the Public Key: Log in to your server using SSH with your server password:

     ssh username@server_ip_or_hostname
    

    Once logged in, add the public key to the ~/.ssh/authorized_keys file:

     cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
    
  3. Set Correct Permissions: Ensure the correct permissions for the .ssh directory and the authorized_keys file on the server:

     chmod 700 ~/.ssh
     chmod 600 ~/.ssh/authorized_keys
    

Step 3: SSH Configuration (Optional)

You can customize your SSH client configuration for convenience. Edit the ~/.ssh/config file on your local machine:

nano ~/.ssh/config

Add custom configurations, such as:

Host myserver
    HostName server_ip_or_hostname
    User username
    IdentityFile ~/.ssh/id_rsa

This lets you use a custom Host name (myserver) for connecting to your server.

Step 4: Connect to the Server

Now that you've set up your SSH key pair and copied the public key to the server, connect securely:

ssh username@server_ip_or_hostname

Replace username with your server username and server_ip_or_hostname with the server's IP address or hostname. If you configured the SSH configuration file, you can use the custom Host name (ssh myserver).

By following these steps, you've successfully established a secure SSH connection using SSH keys. This method provides a secure and convenient way to access your server while enhancing your overall system security.


ย