SSH (Secure Shell) gives you an encrypted command line on your server. It’s how you’ll install software, edit configuration and manage a Linux VPS. Every modern operating system includes an SSH client, so you don’t need to install anything.

What you need

From your welcome email or client area:

  • Server IP address, e.g. 203.0.113.20
  • Username — usually root for a new VPS
  • Password (or an SSH key, if you added one when ordering)

Connect

Open a terminal:

  • Windows 10/11: Windows Terminal or PowerShell (OpenSSH is built in).
  • macOS: Terminal (Applications → Utilities).
  • Linux: any terminal.
ssh [email protected]

The first time, you’ll see:

The authenticity of host '203.0.113.20' can't be established.
ED25519 key fingerprint is SHA256:abc123…
Are you sure you want to continue connecting (yes/no)?

Type yes. Your computer remembers the server’s key in ~/.ssh/known_hosts and will warn you if it ever changes. Then enter the password — nothing appears while you type, which is normal.

Keys are more secure than passwords and let you log in without typing one.

1. Create a key pair on your computer (once):

ssh-keygen -t ed25519 -C "your-name@laptop"

Press Enter to accept the default location and choose a passphrase.

2. Copy the public key to the server:

ssh-copy-id [email protected]

On Windows PowerShell, ssh-copy-id isn’t available; use:

type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

3. Log in again — it should use the key.

Next, create a regular user, disable password logins and root login. See SSH security on Debian or initial Ubuntu server setup.

Save typing with an SSH config

Create ~/.ssh/config on your computer:

Host web1
    HostName 203.0.113.20
    User deploy
    Port 22
    IdentityFile ~/.ssh/id_ed25519

Now ssh web1 is all you need. This also works for scp, rsync and many GUI tools.

Transfer files

scp backup.tar.gz web1:/root/                # upload
scp web1:/var/log/nginx/error.log .          # download
rsync -avz ./site/ web1:/var/www/example.com/   # sync a folder

Graphical options: WinSCP (Windows), Cyberduck or FileZilla (any OS) — choose SFTP as the protocol.

Common errors

Error Cause and fix
Connection timed out Wrong IP, server off, or a firewall blocking port 22. Check in the control panel; use the VNC console.
Connection refused SSH isn’t running or listens on another port. Try ssh -p 2222 … if you changed it.
Permission denied (publickey) Password login is disabled and your key isn’t on the server, or the wrong key is used (ssh -i ~/.ssh/key …).
Permission denied (password) Wrong password — copy it carefully, or reset it from the control panel.
REMOTE HOST IDENTIFICATION HAS CHANGED The server was reinstalled (new host key) — or something is intercepting the connection. If you reinstalled, remove the old entry: ssh-keygen -R 203.0.113.20.
Session freezes after idle time Add ServerAliveInterval 60 to your SSH config.

Use ssh -v [email protected] to see detailed connection steps when troubleshooting.

If you’re locked out

Every VPS.DO VPS has a VNC console in the control panel. It works like a monitor attached to the server, independent of SSH and the network configuration, so you can always log in to fix a problem.

Windows servers

Windows VPS plans use Remote Desktop instead of SSH — see connecting to a Windows VPS with RDP.

Ready to start? Pick an Ubuntu VPS or Debian VPS and you’ll receive SSH details right after payment.

  • SSH
  • Linux
  • Beginners