Met een SSH-sleutel log je in zonder een wachtwoord te typen, en als je daarnaast wachtwoorden uitschakelt, hebben de bots die combinaties op je server uitproberen niets meer te raden.
1. Maak je sleutel aan (op je computer)
Windows 10/11, Mac en Linux hebben SSH al aan boord. Open een terminal (op Windows: PowerShell) en typ:
ssh-keygen -t ed25519
Druk op Enter om hem op de standaardlocatie op te slaan en stel desgewenst een wachtwoordzin in. Er worden twee bestanden aangemaakt in de map .ssh van je gebruiker: id_ed25519 (privé: deel die nooit met iemand) en id_ed25519.pub (publiek).
2. Zet hem op de server
Vanaf Mac of Linux:
ssh-copy-id root@203.0.113.10
Vanaf Windows (PowerShell):
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@203.0.113.10 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"
Er wordt nog één laatste keer om het wachtwoord gevraagd.
3. Test hem
ssh root@203.0.113.10
Kom je binnen zonder dat om het wachtwoord van de server wordt gevraagd, dan werkt het. Ga niet verder met stap 4 als het niet is gelukt.
4. Schakel inloggen met een wachtwoord via SSH uit
Laat de vorige sessie openstaan (voor de zekerheid) en voer op de server uit:
echo "PasswordAuthentication no" > /etc/ssh/sshd_config.d/00-alleen-sleutels.conf
sshd -t && systemctl restart ssh
Op Rocky Linux 8 zet je de regel PasswordAuthentication direct op no in /etc/ssh/sshd_config, en daar heet de service sshd: systemctl restart sshd.
De bestandsnaam begint met opzet met 00-: bij SSH geldt de eerste waarde die wordt ingelezen, en sommige images bevatten een ander bestand dat wachtwoorden weer inschakelt.
Open nog een terminal en controleer of je nog steeds met de sleutel binnenkomt voordat je de eerste sluit.
Als je de sleutel kwijtraakt
De VNC-console in het paneel gebruikt geen SSH, dus daar werkt het wachtwoord nog steeds. Weet je het niet meer, maak dan een nieuw wachtwoord aan via Instellingen → Wachtwoord opnieuw instellen, log in via VNC en voeg je nieuwe sleutel toe aan /root/.ssh/authorized_keys.
Voor bestandsoverdracht (WinSCP, FileZilla) gebruik je dezelfde privésleutel: zo upload je bestanden.