What Is a VPS and Who Is It For?

A Virtual Private Server (VPS) is a virtualized instance running on a physical host machine, but allocated dedicated CPU, RAM, and storage resources. Unlike shared hosting — where resources are pooled — a VPS gives you your own environment with root access, meaning you can install software, configure the server, and run virtually anything you need.

VPS hosting is ideal for developers, growing businesses, agencies hosting multiple client sites, and anyone who has outgrown shared hosting but doesn't need (or can't afford) a dedicated server.

Before You Begin: What You'll Need

  • A VPS plan from a provider (e.g., Aruba Cloud, Hetzner, OVHcloud)
  • An SSH client: Terminal on macOS/Linux, or PuTTY / Windows Terminal on Windows
  • Your VPS IP address, root credentials, or SSH key (provided by your host)
  • Basic comfort with command-line interfaces (no advanced skills required for this guide)

Step 1: Connect to Your VPS via SSH

Once your VPS is provisioned, connect to it using SSH. Replace the IP with your actual server IP:

ssh root@your.server.ip.address

If your provider uses SSH key authentication (recommended over passwords), you may need to specify your key file:

ssh -i ~/.ssh/id_rsa root@your.server.ip.address

Accept the host fingerprint when prompted. You should now see a command-line prompt for your server.

Step 2: Update the System

The first thing to do on any new server is update all installed packages. On Ubuntu/Debian:

apt update && apt upgrade -y

On CentOS/AlmaLinux/Rocky Linux:

dnf update -y

Step 3: Create a Non-Root User

Running everything as root is a security risk. Create a regular user with sudo privileges:

adduser yourusername
usermod -aG sudo yourusername

Then copy your SSH key to the new user (if using key auth) and test logging in as that user before proceeding.

Step 4: Configure the Firewall

Enable a basic firewall to restrict unnecessary access. Using UFW on Ubuntu:

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

This allows SSH, HTTP, and HTTPS traffic while blocking everything else by default.

Step 5: Install a Web Server (Optional)

If you're hosting websites, install a web server. Nginx is lightweight and efficient:

apt install nginx -y
systemctl enable nginx
systemctl start nginx

Visit your server's IP in a browser — you should see the Nginx welcome page.

Step 6: Secure SSH Access

Edit the SSH configuration to improve security:

nano /etc/ssh/sshd_config

Recommended changes:

  • Set PermitRootLogin no — prevent direct root login
  • Set PasswordAuthentication no — enforce key-based auth only
  • Change the default SSH port from 22 to a non-standard port to reduce automated attacks

Restart SSH after saving: systemctl restart sshd

Step 7: Set Up Automatic Security Updates

On Ubuntu, install unattended-upgrades to automatically apply security patches:

apt install unattended-upgrades -y
dpkg-reconfigure --priority=low unattended-upgrades

Next Steps

With a secured, updated VPS running a web server, you're ready to deploy applications. Common next steps include installing a database (MySQL, PostgreSQL), a runtime environment (Node.js, PHP, Python), setting up a domain with DNS A records pointing to your VPS IP, and installing a free SSL certificate via Let's Encrypt and Certbot.

A VPS gives you enormous flexibility — take the time to understand what's running on your server, and you'll have a reliable, cost-effective foundation for almost any web project.