Een wachtwoord kan worden geraden, opnieuw worden afgespeeld en opduiken in een datalek. Een SSH-sleutel kan niet worden geraden: het geheime deel verlaat nooit uw computer en de server kent alleen het openbare deel. Het is de configuratiewijziging die de meeste beveiliging oplevert voor de minste moeite.
Hoe genereer ik een SSH-sleutelpaar?
Met één opdracht, ssh-keygen -t ed25519, die een privésleutel en een openbare sleutel aanmaakt.
Open op uw computer — niet op de server — een terminal (onder Windows volstaat PowerShell):
ssh-keygen -t ed25519 -C "martin@eigen-laptop"
- Accepteer het voorgestelde pad,
~/.ssh/id_ed25519. - Voer een wachtwoordzin in. Die versleutelt de privésleutel: wordt uw computer gestolen, dan blijft de sleutel onbruikbaar.
Er worden twee bestanden aangemaakt:
id_ed25519— de privésleutel. Die kopieert u nergens heen, verstuurt u via geen enkel kanaal en plakt u nooit in een ticket.id_ed25519.pub— de openbare sleutel. Die plaatst u op de servers.
Toon de openbare sleutel om hem te kopiëren:
cat ~/.ssh/id_ed25519.pub
Hij past op één regel en begint met ssh-ed25519 AAAA….
Hoe plaats ik mijn openbare sleutel op mijn VPS?
Op twee manieren: plak hem in de kaart SSH-sleutels van het tabblad Toegang & beveiliging, of verstuur hem vanuit uw terminal met ssh-copy-id.
Via de klantenzone is dit de eenvoudigste manier:
- Open Mijn diensten en daarna uw VPS.
- Ga naar het tabblad Toegang & beveiliging.
- Plak uw openbare sleutel in de kaart SSH-sleutels. Het veld accepteert één sleutel per regel en de formaten
ssh-rsa,ssh-ed25519enecdsa. - Klik op Sleutels opslaan.
De melding “SSH-sleutels succesvol bijgewerkt.” bevestigt het opslaan, en het tabblad Geschiedenis legt het vast. Deze sleutels worden bewaard en bij elke herinstallatie van de VPS automatisch opnieuw geïnjecteerd: u hoeft het niet opnieuw te doen.
Vanuit uw terminal werkt de klassieke methode ook:
ssh-copy-id root@IP_ADRES
Controleer daarna of de verbinding met de sleutel werkt, zonder uw huidige sessie te sluiten:
ssh root@IP_ADRES
Vraagt de server niet meer om het wachtwoord van het account — hooguit om de wachtwoordzin van uw sleutel — dan is alles in orde.
Hoe schakel ik SSH-aanmelding met een wachtwoord uit?
Door PasswordAuthentication no in te stellen in /etc/ssh/sshd_config en daarna de SSH-dienst te herladen — maar pas nadat de verbinding met de sleutel is gecontroleerd.
Zet deze stap pas nadat u het vorige punt hebt gecontroleerd, en houd uw huidige SSH-sessie open tijdens de hele handeling.
Bewerk /etc/ssh/sshd_config:
PubkeyAuthentication yes
PasswordAuthentication no
PermitRootLogin prohibit-password
Controleer de syntaxis voordat u de dienst herlaadt — deze opdracht voorkomt een SSH-server die weigert opnieuw te starten:
sshd -t
systemctl reload ssh # Debian, Ubuntu
systemctl reload sshd # AlmaLinux, Rocky, CentOS Stream
Open nu een tweede sessie in een ander venster. Slaagt die, dan kunt u de eerste gerust sluiten. Mislukt ze, corrigeer het bestand dan vanuit de sessie die open is gebleven.
Hoe maak ik een back-up van mijn privésleutel en geef ik iemand anders toegang?
Bewaar een back-up van de privésleutel op de plek waar u uw wachtwoorden bewaart, en voeg alleen de openbare sleutel van de betreffende persoon toe, op een nieuwe regel.
- Bewaar een back-up van uw privésleutel waar u ook uw wachtwoorden bewaart: hem verliezen betekent de toegang verliezen, tenzij u via de console gaat.
- Om een tweede persoon toegang te geven, voegt u diens openbare sleutel toe op een nieuwe regel. Deel nooit een privésleutel tussen meerdere personen: u verliest elke traceerbaarheid en kunt de toegang niet meer per persoon intrekken.
- Om een toegang in te trekken, verwijdert u de bijbehorende regel en slaat u opnieuw op.
Wat moet ik doen als ik mijn SSH-sleutel kwijt ben?
U zit niet vast. Open de noodconsole vanuit de klantenzone: die geeft u het scherm van de machine zonder via SSH te gaan. Meld u aan met het beheerderswachtwoord, zet tijdelijk PasswordAuthentication yes terug, plaats een nieuwe sleutel en sluit daarna weer af.