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

SSH sleutels aanmaken en beheren

SSH-sleutels aanmaken en beheren Dit artikel legt uit hoe je SSH-sleutels genereert met `ssh-keygen`, ze beveiligt met een passphrase en ze correct plaatst op

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. Wil je meerdere sleutels 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/

Je ziet nu twee bestanden: `id_ed25519` (privé) en `id_ed25519.pub` (publiek). De privésleutel moet alleen leesbaar zijn voor jouw gebruiker — check 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, log je 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 wil je niet elke keer de passphrase intoetsen. 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 je `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 zie je `Authenticated to server.example.com ([IP]:22)` en `Server accepts key`. Je 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 je 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 je 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

Heb je geen `puttygen` op Linux, installeer dan `putty-tools` (Debian/Ubuntu: `sudo apt install putty-tools`). De publieke sleutel kun je 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 je hem handmatig verwijdert uit `authorized_keys` op elke server waar hij ooit is geplaatst — en dat is precies waarom je het aantal sleutels klein houdt en per omgeving een aparte sleutel gebruikt.

← Terug naar kennisbank
← Terug naar kennisbank