What Is SSH and Why Use Key-Based Authentication?

SSH (Secure Shell) is the industry-standard way to control, manage, and troubleshoot a web server securely—remotely, from any device.

With Bluehost Self-Managed VPS, SSH lets you connect directly to your server’s command line, perform administrative actions, upload and download files, configure applications, and automate workflows while helping protect your data through strong encryption.

This article explains what SSH is, why it’s important for VPS hosting, when you use it, how to log in, how SSH key-based authentication works, the best terminals and apps to use, and answers to the most common SSH questions.

What is SSH?

  • SSH (Secure SHell) is a protocol that lets you securely connect to your server’s command line (shell) from anywhere in the world.
  • It encrypts data transmitted between your device and server, including authentication information, commands, and files transferred through SSH-based services.
  • SSH is the standard remote-access method across cloud and VPS platforms, including Bluehost Self-Managed VPS.
  • It replaces older, insecure remote access tools like Telnet and plain FTP.

What Is SSH Key-Based Authentication?

SSH can authenticate you using a password or an SSH key pair. Key-based authentication is generally recommended because it provides a stronger way to verify your identity when connecting to your VPS.

An SSH key pair consists of two related keys:

  • Public key: This is added to your VPS. It can be shared and does not need to be kept secret.
  • Private key: This stays on your computer or device and must be kept secret. Never share your private key.

When you connect using key-based authentication, SSH uses the key pair to verify that you are authorized to access the server. Your private key remains on your device and is not sent to the server.

Why Use SSH Keys?

SSH keys can provide stronger protection than password-only authentication and are especially useful for VPS administration, automated tasks, and secure deployments.

Using SSH keys can:

  • Reduce reliance on passwords for server access.
  • Help protect against automated password-guessing attacks.
  • Allow secure authentication for scripts and automated processes.
  • Make it easier to manage access without sharing a server password.

For additional protection, you can protect your private key with a strong passphrase. Keep your private key secure and only use it on devices you trust.

ED25519 and RSA SSH Keys

SSH supports several key types. ED25519 and RSA are two commonly encountered types.

  • ED25519: A modern SSH key type that is generally a good choice for new keys.
  • RSA: A widely supported SSH key type that may be useful when compatibility with older systems or software is required.

For most current OpenSSH installations, ED25519 is a good choice for new SSH keys. If your server or application does not support ED25519, RSA is another option.

If you need to create an SSH key pair, see Generate SSH Keys: Windows & macOS/Unix (PowerShell, PuTTY) for step-by-step instructions.

After generating your key pair, you can add the public key to your Self-Managed VPS through the Bluehost Portal. For details, see How to Add an SSH Key on a Self-Managed VPS and VDS.

Why is SSH Important?

  • Security: Encrypts login credentials and command traffic in transit, helping protect them from interception when managing your VPS over the internet.
  • Full Control: Lets you manage your server—services, files, logs, users, firewall, updates—anywhere, anytime.
  • Troubleshooting: Vital for diagnosing issues, viewing logs, or restarting services in emergencies.
  • Automation: Supports secure scripts for tasks such as backups and deployments, as well as secure file transfers.
  • Industry Standard: Used globally—system administrators, developers, and support teams rely on SSH for remote management.

When and Why Do I Use SSH?

  • To control or configure your server remotely from a computer or phone.
  • For safe software installation, upgrades, and maintenance.
  • To edit settings or files on your sites, databases, or applications.
  • When troubleshooting errors, slow performance, or outages (checking logs, restarting apps).
  • To upload or download files securely using SFTP/SCP.
  • For automation and remote scripting (backups, deployments, configuration tools).
  • To recover from issues or regain access using Bluehost’s Console in emergencies, when available.

How to Access or Log In with SSH

  1. Get your VPS IP address and credentials.
    • Find your IP address in the Bluehost Portal (for example, 192.0.2.34).
    • If root login is enabled on your VPS, you can initially log in as root. Otherwise, use your admin username. You’ll need the password or an SSH key.
  2. Open a terminal or SSH app on your device:
    • Windows: Windows Terminal (built-in), PuTTY, WSL, or MobaXterm.
    • Mac: Terminal (built-in), iTerm2.
    • Linux: Terminal/Console (GNOME Terminal, Konsole, etc.).
    • Mobile: Termius, JuiceSSH, ConnectBot (Android), Blink Shell (iOS).
  3. Connect to your VPS:
    ssh root@your_server_ip

    Example prompt/output:

    The authenticity of host '192.0.2.34 (192.0.2.34)' can't be established.
    ED25519 key fingerprint is SHA256:abcd1234EXAMPLEfingerprintEXAMPLE5678wxyz.
    Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
    Warning: Permanently added '192.0.2.34' (ED25519) to the list of known hosts.
    [email protected]'s password:
    [root@vps ~]#
    • For a different username: replace root with your admin username.
    • If your port has been changed from the default (22), add -p PORTNUMBER (for example, ssh -p 2222 root@your_server_ip).
    • For SSH keys: use your private key when connecting, for example:
    ssh -i /path/to/private_key root@your_server_ip

    The private key should remain securely stored on your device and should never be shared.

  4. For graphical SFTP: Use WinSCP, FileZilla, or Cyberduck, and enter your IP address, SSH username, and password (or key) under SFTP (port 22).

Security Best Practices for SSH

Create and test a sudo user before disabling root login

For best security, create a regular user with sudo privileges before disabling root login. Confirm that you can successfully connect using the new account and that it has the required administrative privileges. Keep an active SSH session open while testing the new account so you have a way back if there is a configuration problem.

Disable root login

After confirming that your sudo user works, you can disable direct root login by setting PermitRootLogin no in your /etc/ssh/sshd_config file. After making the change, validate the SSH configuration and restart or reload the SSH service according to your operating system’s documentation.

Use SSH key-based authentication

SSH keys provide stronger authentication than password-only access and can help protect against automated password-guessing attacks. Your private key stays on your device and is not sent to the server. Use key-based authentication whenever possible, and protect your private key with a strong passphrase.

Block brute-force SSH login attempts (Fail2ban)

Install fail2ban to automatically block IP addresses that repeatedly try to log in and fail.

On Debian- or Ubuntu-based systems, you can typically install it with:

sudo apt install fail2ban -y

On RHEL-based systems such as AlmaLinux, Rocky Linux, or CentOS Stream, the package may be provided through the EPEL (Extra Packages for Enterprise Linux) repository. You may need to enable EPEL before installing fail2ban:

sudo dnf install epel-release -y
sudo dnf install fail2ban -y

What Terminals or Apps Can I Use for SSH?

Platform Popular Terminals/Apps
Windows Windows Terminal (built-in), PuTTY, WSL/Ubuntu, MobaXterm
Mac Terminal (built-in), iTerm2, Cyberduck (for SFTP/GUI transfers)
Linux Terminal/Console (any desktop), GNOME Terminal, Konsole
Mobile Termius, JuiceSSH, Blink (iOS), ConnectBot (Android)

What Happens If I Don’t Use SSH?

  • You may not have secure, full remote control over your server through a command-line connection.
  • Your data may be exposed if you use plain FTP transfers or other unencrypted connections.
  • You may be unable to fix, configure, or recover your server quickly in an emergency without SSH (unless you use Console, when available, which may be less convenient for daily use).
  • Your support or developer team may need SSH to help you efficiently and securely.

First 3 Commands to Know After Login

After logging in for the first time, type these basics to start exploring your server:

  • ls — Lists files in the current directory.
  • cd <folder> — Changes directory (for example, cd /var/www/html moves to your web root).
  • top or htop — Shows system resource usage.

SSH FAQ

Summary

SSH is an essential, secure method to access and manage your Bluehost Self-Managed VPS on any device or operating system. You need SSH for nearly all routine server management, troubleshooting, secure file transfers, coding, automation, and advanced support. SSH key-based authentication provides a stronger alternative to password-only access: a public key is stored on the server, while the private key remains securely on your device. For most current OpenSSH installations, ED25519 is a good choice for new keys, while RSA remains useful when compatibility with older systems or software is required. As a Self-Managed VPS customer, you are responsible for the configuration and administration of your server, including SSH settings and any security hardening you apply.

If you need further assistance, Bluehost Chat Support is available 24 hours a day, 7days a week while Bluehost Phone Support is available 7 days a week from 7 am-12 midnight EST. 

  • Chat Support -  While on our website, you should see a CHAT bubble in the bottom right-hand corner of the page. Click anywhere on the bubble to begin a chat session.
  • Phone Support -
    • US: 888-401-4678
    • International: +1 801-765-9400

You may also refer to our Knowledge Base articles to help answer common questions and guide you through various setup, configuration, and troubleshooting steps.