SSH Key Installatiegids: Sleutels Aanmaken, Root Wachtwoord Uitschakelen & Je VPS Beveiligen
Leer hoe je SSH-sleutels aanmaakt, root-wachtwoordaanmelding uitschakelt en open poorten op je VPS controleert. Stapsgewijze handleiding om je server in enkele minuten te beveiligen.
SSH Key Installatiegids: Sleutels Aanmaken, Root Wachtwoord Uitschakelen & Je VPS Beveiligen
Elke VPS die je opstart wordt onmiddellijk gescand door bots die standaardwachtwoorden uitproberen. Binnen enkele minuten. Als je nog steeds inlogt met een root-wachtwoord, ben je slechts een brute-force aanval verwijderd van een gecompromitteerde server.
SSH-sleutels lossen dit op. Ze zijn sterker dan elk wachtwoord, sneller in gebruik, en stellen je in staat om wachtwoordaanmelding volledig uit te schakelen. Hier lees je hoe je alles instelt, plus hoe je controleert welke poorten op je server zijn blootgesteld.
Stap 1: Een SSH-Sleutelpaar Aanmaken
SSH-sleutels werken in paren — een privesleutel (blijft op je computer, deel deze nooit) en een publieke sleutel (gaat naar de server).
Op macOS of Linux
Open een terminal en voer uit:
ssh-keygen -t ed25519 -C "your@email.com"
Je ziet:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/you/.ssh/id_ed25519):
Druk op Enter om de standaardlocatie te accepteren. Stel vervolgens een wachtwoordzin in (aanbevolen) of druk op Enter om over te slaan.
Dit maakt twee bestanden aan:
| Bestand | Wat het is | Delen? |
|---|---|---|
~/.ssh/id_ed25519 | Privesleutel | Nooit |
~/.ssh/id_ed25519.pub | Publieke sleutel | Ja — kopieer naar servers |
Op Windows
Optie A: Windows Terminal / PowerShell
ssh-keygen -t ed25519 -C "your@email.com"
Zelfde proces als hierboven. Sleutels worden opgeslagen in C:\Users\JouwNaam\.ssh\.
Optie B: PuTTYgen
- Download PuTTY
- Open PuTTYgen
- Selecteer EdDSA (Ed25519)
- Klik op Generate en beweeg je muis
- Sla de privesleutel op (
.ppk) en kopieer de tekst van de publieke sleutel
Waarom Ed25519?
| Algoritme | Sleutelgrootte | Beveiliging | Snelheid |
|---|---|---|---|
| RSA 4096 | 4096-bit | Goed | Langzamer |
| Ed25519 | 256-bit | Uitstekend | Snelste |
| ECDSA | 256-bit | Goed | Snel |
Ed25519 is de moderne standaard — kortere sleutels, snellere bewerkingen, sterke beveiliging. Gebruik het tenzij je RSA-compatibiliteit nodig hebt met zeer oude systemen.
Stap 2: Je Publieke Sleutel naar de Server Kopieren
Methode 1: ssh-copy-id (Makkelijkst)
ssh-copy-id root@your-server-ip
Voer voor de laatste keer je wachtwoord in. Klaar. De tool voegt je publieke sleutel toe aan ~/.ssh/authorized_keys op de server.
Methode 2: Handmatig Kopieren
Als ssh-copy-id niet beschikbaar is:
cat ~/.ssh/id_ed25519.pub | ssh root@your-server-ip \
"mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Methode 3: Tijdens het Aanmaken van de VPS
De meeste providers laten je SSH-sleutels toevoegen bij het aanmaken van een server:
- Hostinger — Plak de publieke sleutel in het SSH Keys gedeelte tijdens de installatie
- Hetzner — Voeg sleutels toe aan je account, selecteer ze bij het aanmaken van de server
- DigitalOcean — Hetzelfde, onder Settings → Security → SSH Keys
- Vultr — Products → SSH Keys → Add SSH Key
Dit is de beste aanpak — de server is beveiligd vanaf het moment dat hij opstart.
Controleer of het werkt
ssh root@your-server-ip
Je zou moeten inloggen zonder dat er om een wachtwoord wordt gevraagd (of alleen om je sleutel-wachtwoordzin als je er een hebt ingesteld).
Stap 3: Root Wachtwoordaanmelding Uitschakelen
Zodra SSH-sleutelaanmelding werkt, schakel wachtwoordauthenticatie volledig uit. Dit maakt brute-force aanvallen onmogelijk.
De SSH-configuratie Bewerken
sudo nano /etc/ssh/sshd_config
Zoek en wijzig deze regels (sommige kunnen zijn uitgecommentarieerd met #):
# Wachtwoordauthenticatie uitschakelen
PasswordAuthentication no
# Lege wachtwoorden uitschakelen
PermitEmptyPasswords no
# Challenge-response uitschakelen (PAM)
KbdInteractiveAuthentication no
# Optioneel: root-aanmelding volledig uitschakelen (gebruik een gewone gebruiker + sudo)
# PermitRootLogin no
# Als je root-aanmelding wilt maar ALLEEN met sleutels:
PermitRootLogin prohibit-password
De Wijzigingen Toepassen
sudo systemctl restart sshd
⚠️ Waarschuwing: Voordat je je huidige sessie sluit, open een nieuwe terminal en test of je nog steeds kunt inloggen met je sleutel. Als je jezelf buitensluit, heb je consoletoegang nodig via het dashboard van je VPS-provider.
Testen
Vanaf een andere machine (of probeer expliciet met wachtwoord):
ssh -o PreferredAuthentications=password root@your-server-ip
Je zou moeten zien:
Permission denied (publickey).
Dat betekent dat wachtwoordaanmelding is uitgeschakeld. Alleen je SSH-sleutel werkt nu.
Stap 4: Open Poorten op Je VPS Controleren
Elke open poort is een potentieel aanvalsoppervlak. Je moet precies weten wat er is blootgesteld.
Controleren vanaf de binnenkant van je server
Alle luisterende poorten weergeven:
ss -tlnp
De uitvoer ziet er zo uit:
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1234))
LISTEN 0 511 0.0.0.0:80 0.0.0.0:* users:(("nginx",pid=5678))
LISTEN 0 511 0.0.0.0:443 0.0.0.0:* users:(("nginx",pid=5678))
LISTEN 0 128 127.0.0.1:5432 0.0.0.0:* users:(("postgres",pid=9012))
Wat elke kolom je vertelt:
| Kolom | Betekenis |
|---|---|
0.0.0.0:22 | Luistert op alle interfaces (publiek toegankelijk) |
127.0.0.1:5432 | Luistert alleen op localhost (niet publiek toegankelijk) |
| Process | Welk programma de poort gebruikt |
Belangrijkste punt: Alles op 0.0.0.0 of [::] is bereikbaar vanaf het internet. Alles op 127.0.0.1 is alleen lokaal.
Controleren vanaf de buitenkant van je server
Dit vertelt je wat het internet daadwerkelijk ziet.
Met nmap (meest grondig):
# Installeer nmap op je lokale machine
# macOS: brew install nmap
# Ubuntu: sudo apt install nmap
# Veelgebruikte poorten scannen
nmap your-server-ip
# ALLE poorten scannen (duurt langer)
nmap -p- your-server-ip
# Scannen met servicedetectie
nmap -sV your-server-ip
Met netcat (snelle controle van een enkele poort):
nc -zv your-server-ip 22
nc -zv your-server-ip 3306
Met een online scanner:
Bezoek shodan.io en zoek naar het IP-adres van je server. Het toont alle publiek gedetecteerde poorten en diensten — precies wat aanvallers zien.
Welke poorten moeten open zijn?
Voor een typische webserver:
| Poort | Dienst | Moet open zijn? |
|---|---|---|
| 22 | SSH | ✅ Ja (overweeg een niet-standaard poort) |
| 80 | HTTP | ✅ Ja (stuurt door naar HTTPS) |
| 443 | HTTPS | ✅ Ja |
| 3306 | MySQL | ❌ Nee — bind aan localhost |
| 5432 | PostgreSQL | ❌ Nee — bind aan localhost |
| 6379 | Redis | ❌ Nee — bind aan localhost |
| 27017 | MongoDB | ❌ Nee — bind aan localhost |
Vuistregel: Als een dienst niet bereikbaar hoeft te zijn vanaf het internet, bind het dan aan 127.0.0.1.
Onnodige Poorten Sluiten met UFW
UFW (Uncomplicated Firewall) is de eenvoudigste manier om poorttoegang te beheren op Ubuntu/Debian:
# UFW activeren (sta SSH eerst toe!)
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# Status controleren
sudo ufw status verbose
# Een specifieke poort blokkeren
sudo ufw deny 3306
# Alleen vanaf een specifiek IP toestaan
sudo ufw allow from 203.0.113.50 to any port 22
⚠️ Sta altijd SSH toe voordat je UFW activeert. Anders sluit je jezelf buiten.
Bonus: Extra SSH-Beveiliging
De Standaard SSH-Poort Wijzigen
SSH verplaatsen van poort 22 elimineert 99% van de geautomatiseerde scans:
# /etc/ssh/sshd_config
Port 2222
sudo systemctl restart sshd
sudo ufw allow 2222/tcp
sudo ufw delete allow 22/tcp
Maak vervolgens verbinding met:
ssh -p 2222 root@your-server-ip
Een SSH Config-Bestand Instellen
Stop met het typen van lange commando’s. Maak ~/.ssh/config aan op je lokale machine:
Host myserver
HostName 203.0.113.50
User root
Port 2222
IdentityFile ~/.ssh/id_ed25519
Nu typ je gewoon:
ssh myserver
Fail2Ban Inschakelen
Fail2Ban bewaakt logbestanden en blokkeert tijdelijk IP-adressen met te veel mislukte aanmeldpogingen:
sudo apt install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
# Geblokkeerde IP's controleren
sudo fail2ban-client status sshd
Snelle Beveiligingschecklist
Doorloop na het instellen van een nieuwe VPS deze lijst:
- SSH-sleutelpaar aangemaakt en naar de server gekopieerd
- Wachtwoordauthenticatie uitgeschakeld
- Root-aanmelding ingesteld op
prohibit-passwordof uitgeschakeld - UFW ingeschakeld met alleen de noodzakelijke poorten open
- Databases alleen aan localhost gebonden
- SSH-poort gewijzigd van standaard 22
- Fail2Ban geinstalleerd en actief
- Systeempakketten bijgewerkt (
apt update && apt upgrade)
FAQ
Ik ben mijn SSH-sleutel kwijt. Hoe kom ik weer binnen?
Gebruik de webconsole van je VPS-provider (beschikbaar in het dashboard van elke provider). Het geeft je directe terminaltoegang zonder SSH. Van daaruit kun je een nieuwe publieke sleutel toevoegen of tijdelijk wachtwoordauthenticatie weer inschakelen.
Kan ik meerdere SSH-sleutels gebruiken?
Ja. Voeg elke publieke sleutel toe op een eigen regel in ~/.ssh/authorized_keys op de server. Handig voor teamtoegang of verschillende apparaten.
Moet ik een wachtwoordzin instellen op mijn sleutel?
Ja, vooral op gedeelde of draagbare apparaten. Het voegt een tweede laag toe — zelfs als iemand je sleutelbestand steelt, kan diegene het niet gebruiken zonder de wachtwoordzin. Gebruik ssh-agent om te voorkomen dat je het elke keer moet intypen:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Is het wijzigen van de SSH-poort echt nuttig?
Het verbetert de beveiliging niet tegen gerichte aanvallen, maar elimineert ~99% van het geautomatiseerde botverkeer. Minder ruis in je logs, minder verspilde bronnen aan mislukte pogingen.
Hoe weet ik of iemand probeert in te breken?
Controleer je authenticatielog:
# Ubuntu/Debian
sudo tail -100 /var/log/auth.log | grep "Failed password"
# CentOS/RHEL
sudo tail -100 /var/log/secure | grep "Failed password"
Als je duizenden vermeldingen ziet van verschillende IP-adressen, is dat normaal botscanning. Het is precies waarom je wachtwoordauthenticatie uitschakelt.
Wat Nu?
Nu SSH is vergrendeld en je weet welke poorten open zijn, heb je de meest kritieke aanvalsvectoren afgedekt. Voor een diepere duik in VPS-beveiliging, bekijk onze VPS-beveiligingsgids en de WireGuard-installatiegids voor versleutelde tunnels tussen servers.
Een VPS nodig om te oefenen? De KVM-plannen van Hostinger beginnen bij een paar euro per maand en geven je volledige root-toegang — perfect om serverbeveiliging hands-on te leren.
Ready to get started?
Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.
Get Hostinger VPS — $4.99/mo// up to 75% off + free domain included
// related topics
// related guides
$1 VPS Hosting 2026: Cheapest VPS Servers Starting at $1/Month
Looking for $1 VPS hosting? Compare the cheapest VPS providers starting from $1-3/month. Real specs, no hidden fees, honest reviews of budget VPS options.
tutorialCaddy Reverse Proxy Guide 2026: Automatic HTTPS Made Easy
Set up Caddy as a reverse proxy with automatic HTTPS, zero-config SSL, and simple Caddyfile syntax. Complete VPS deployment guide.
tutorialCloudflare Tunnel VPS Guide 2026: Expose Services Without Opening Ports
Set up Cloudflare Tunnel on your VPS to expose web apps securely without opening ports or revealing your server IP. Complete guide with Docker and DNS config.
tutorialCoolify VPS Setup Guide 2026: Self-Hosted Vercel Alternative
Deploy Coolify on your VPS for a self-hosted Vercel/Netlify experience. Complete setup guide with Docker, SSL, and app deployments.
Andrius Putna
I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.
// last updated: March 14, 2026. Disclosure: This article may contain affiliate links.