skip to content
Slashism

How to Set Up SSH for Your VPS

/ 3 min read

Setting up SSH (Secure Shell) is like giving your virtual private server a secret handshake – it’s the cool kids’ way of ensuring secure remote access. Don’t worry if you’re new to this; I’ll walk you through the process step-by-step, no techie jargon required!

Why Bother with SSH?

Before we dive in, let’s quickly chat about why SSH is a big deal:

  • It’s like a virtual bouncer for your VPS, keeping the riffraff out
  • Your data gets a personal bodyguard, traveling in encrypted style
  • Say goodbye to those pesky password-based attacks

Sounds good, right? Let’s get started!

Step 1: Generate Your SSH Key Pair

First things first, we need to create your SSH key pair. Think of it as a high-tech lock and key for your VPS.

On your local machine (not the VPS), open up your terminal and type:

Terminal window
ssh-keygen -t rsa -b 4096

This command is like asking a locksmith to craft a super-secure key for you. Follow the prompts to choose a file location (the default is usually fine) and set a passphrase.

Pro tip: Choose a passphrase that’s easy for you to remember but tough for others to guess!

Step 2: Introduce Your Key to Your VPS

Now that you have your shiny new key, it’s time to introduce it to your VPS. We’ll use the ssh-copy-id command for this digital meet-and-greet:

Terminal window
ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_vps_ip_address

Replace username with your VPS username and your_vps_ip_address with, you guessed it, your VPS IP address. If asked for a password, use your VPS user’s password.

Step 3: Configure Your SSH Server

Time to make your SSH server as cozy and secure as Fort Knox. Log into your VPS:

Terminal window
ssh username@your_vps_ip_address

Once you’re in, we’ll tweak the SSH config file:

Terminal window
sudo nano /etc/ssh/sshd_config

Here are some security-boosting changes to consider:

  1. Change the default port (optional, but sneaky):
Port 2222

Pick any number above 1024.

  1. Disable password authentication (recommended):
PasswordAuthentication no

This tells your server, “No key, no entry!”

  1. Disable root login (also recommended):
PermitRootLogin no

Because even root needs to follow the rules sometimes.

Save your changes and exit the editor. Pat yourself on the back – you’re doing great!

Step 4: Restart the SSH Service

Let’s make those changes official:

Terminal window
sudo systemctl restart sshd

This is like telling your VPS, “Hey, we’ve got new house rules!”

Step 5: Connect to Your VPS via SSH

Now, let’s test our handiwork:

Terminal window
ssh -p port_number username@your_vps_ip_address

Replace port_number with your new port (or use 22 if you didn’t change it), and fill in your username and your_vps_ip_address.

Congratulations, SSH Master!

You’ve just leveled up your VPS security! Your server is now like a digital fortress, with you holding the keys to the kingdom. Remember to keep your private key safer than your secret cookie stash, and never share it with anyone.

Happy secure serving!