Kennisbank › Beveiliging › SSH-sleutels aanmaken en beheren
beveiliging gemiddeld 29 August 2026

SSH-sleutels aanmaken en beheren

SSH-sleutels aanmaken en beheren

ssh-keygen -t ed25519

Ed25519 is het aanbevolen algoritme in OpenSSH 8.x en nieuwer. Het is sneller en veiliger dan RSA-2048 of RSA-3072. Het commando maakt twee bestanden aan: een privésleutel en een publieke sleutel.

2. Kies de opslaglocatie

`ssh-keygen` vraagt om een bestandspad. Druk op Enter om de standaardlocatie te accepteren:

Enter file in which to save the key (/home/gebruiker/.ssh/id_ed25519):

De standaardlocatie is `~/.ssh/id_ed25519` voor de privésleutel en `~/.ssh/id_ed25519.pub` voor de publieke sleutel. De SSH-client zoekt automatisch op deze paden bij een verbinding. Wenst u meerdere sleutels te beheren, geef dan een eigen naam op, bijvoorbeeld `~/.ssh/id_ed25519_pixzo`.

3. Stel een passphrase in

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

Een passphrase versleutelt de privésleutel op schijf. Zonder passphrase kan iedereen met leestoegang tot het bestand de sleutel direct gebruiken. Zet altijd een passphrase op sleutels die op gedeelde of productiesystemen staan.

4. Controleer de gegenereerde bestanden

ls -la ~/.ssh/

U ziet nu twee bestanden: `id_ed25519` (privé) en `id_ed25519.pub` (publiek). De privésleutel moet alleen leesbaar zijn voor uw gebruiker — controleer met `ls -l` dat de permissies `-rw-------` zijn. Staat er meer, corrigeer dan met:

chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

5. Kopieer de publieke sleutel naar de server

ssh-copy-id -i ~/.ssh/id_ed25519.pub gebruiker@server.example.com

`ssh-copy-id` plaatst de publieke sleutel in `~/.ssh/authorized_keys` op de server. Dit commando vraagt één keer naar het wachtwoord van de server-gebruiker. Werkt `ssh-copy-id` niet (bijvoorbeeld op een minimale Linux-installatie), kopieer de sleutel dan handmatig:

cat ~/.ssh/id_ed25519.pub | ssh gebruiker@server.example.com "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

6. Test de sleutel-authenticatie

ssh gebruiker@server.example.com

Als de sleutel correct staat en de passphrase klopt, logt u in zonder wachtwoord. Wordt er nog om een wachtwoord gevraagd, controleer dan stap 5 en de permissies op de server: `~/.ssh` moet `700` zijn en `authorized_keys` moet `600` zijn.

7. Voeg de sleutel toe aan ssh-agent (optioneel)

Voor dagelijks beheer wenst u niet elke keer de passphrase in te toetsen. Laad de sleutel in de SSH-agent:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

De agent houdt de ontgrendelde sleutel in het geheugen. Bij een nieuwe terminal-sessie moet u `ssh-add` opnieuw uitvoeren. Gebruik `ssh-add -l` om te controleren welke sleutels geladen zijn.

8. Beveilig de privésleutel op de client

De privésleutel verlaat nooit de lokale machine. Zorg dat de map `~/.ssh` zelf ook goed beveiligd is:

chmod 700 ~/.ssh

Op een laptop die kwijt kan raken, overweeg een versleutelde home-directory of full-disk encryption. Een privésleutel met passphrase is de laatste verdedigingslinie — zonder passphrase is een gestolen bestand direct bruikbaar.

Verificatie

Controleer of de sleutel werkt en of de server de juiste vingerafdruk toont:

ssh -v gebruiker@server.example.com

In de debug-output ziet u `Authenticated to server.example.com ([IP]:22)` en `Server accepts key`. U kunt ook expliciet de publieke sleutel op de server controleren:

ssh gebruiker@server.example.com "cat ~/.ssh/authorized_keys"

De output moet exact overeenkomen met de inhoud van `~/.ssh/id_ed25519.pub` op uw lokale machine.

Veelgestelde problemen

1. Permission denied (publickey) bij het verbinden

De server accepteert de sleutel niet. Controleer de permissies op de server: `~/.ssh` moet `700` zijn, `authorized_keys` moet `600` zijn. Controleer ook of u de juiste sleutel aanbiedt: `ssh -i ~/.ssh/id_ed25519 gebruiker@server`. Op sommige systemen staat `PubkeyAuthentication no` in `/etc/ssh/sshd_config` — zet dat op `yes` en herstart `sshd`.

2. `ssh-keygen` bestaat niet op Windows

Windows 10 (build 1809 of nieuwer) en Windows 11 hebben OpenSSH ingebouwd. Open een PowerShell of Command Prompt en voer `ssh-keygen.exe` uit. Is het niet aanwezig, installeer dan de OpenSSH-client via Instellingen → Apps → Optionele functies → Een functie toevoegen → OpenSSH-client.

3. PuTTY-sleutels werken niet met OpenSSH

PuTTYgen slaat privésleutels op in `.ppk`-formaat. OpenSSH gebruikt een eigen formaat. Converteer met:

puttygen id_ed25519.ppk -O private-openssh -o id_ed25519

Hebt u geen `puttygen` op Linux, installeer dan `putty-tools` (Debian/Ubuntu: `sudo apt install putty-tools`). De publieke sleutel kunt u direct uit PuTTYgen kopiëren — die is compatibel met `authorized_keys`.

Het beheren van SSH-sleutels stopt niet bij het aanmaken. Sleutels verlopen niet, dus een gelekte sleutel blijft geldig tot u hem handmatig verwijdert uit `authorized_keys` op elke server waar hij ooit is geplaatst — en dat is precies waarom u het aantal sleutels klein houdt en per omgeving een aparte sleutel gebruikt.

← Terug naar kennisbank
← Terug naar kennisbank