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
rootfor 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.
Set up SSH keys (recommended)
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.