Overzicht
Dit artikel beschrijft hoe u SSH Openbare Sleutelverificatie aan de clientzijde configureert om veilig verbinding te maken met een server. De uitleg geldt zowel voor Windows als Linux.
Vereisten
- SSH-client is standaard geïnstalleerd (Windows 10 of hoger, of Linux)
- De doelserver staat Openbare Sleutelverificatie toe
- Er bestaat al een gebruikersaccount op de server
Sleuteltypen en encryptiemethoden
SSH ondersteunt verschillende sleutelformaten, waaronder RSA, ECDSA en Ed25519. Onderstaande tabel vergelijkt de eigenschappen, aanbevolen gebruik en compatibiliteit.
| Sleuteltype | Kenmerken | Aanbevolen gebruik | Compatibiliteit |
|---|---|---|---|
| RSA | Algemeen gebruikt, aanpasbare sleutelgrootte, zeer compatibel | Oudere systemen of brede compatibiliteit | Zeer hoog |
| ECDSA | Sneller dankzij elliptische krommen, kortere sleutels dan RSA | Omgevingen waar prestaties belangrijk zijn | Gemiddeld |
| Ed25519 | Moderne standaard, snel en zeer veilig | Nieuwe implementaties, hoge beveiliging | Nieuwste SSH-versies |
Aanbeveling: gebruik Ed25519 als de SSH-versie dit ondersteunt (OpenSSH 6.5+).
RSA blijft bruikbaar voor oudere systemen of FIPS-compatibele omgevingen.
Variabelen
| Variabele | Voorbeeld | Opmerking |
|---|---|---|
<<USERNAME>> |
exampleuser |
Lokale gebruikersnaam op de client |
<<SERVER>> |
192.168.1.10 |
Doelserver hostnaam of IP-adres |
<<USER>> |
ubuntu of ec2-user |
Gebruiker voor SSH-aanmelding op de server |
<<EMAIL_ADDRESS>> |
user@example.com |
Optioneel commentaar voor sleutel |
Opmerking (Windows)
Alle Windows-commando’s zijn bedoeld voor PowerShell.
Gebruik alleencmd.exeals PowerShell niet beschikbaar is.
Vervang in dat geval$env:USERPROFILEdoor%USERPROFILE%.
Windows Client
Stap 1: Sleutelpaar genereren
Open PowerShell als beheerder en voer uit:
ssh-keygen -t ed25519 -C "<<EMAIL_ADDRESS>>"
Uitvoervoorbeeld:
Generating public/private ed25519 key pair.
Enter file in which to save the key (/C:/Users/<<USERNAME>>/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Your identification has been saved in /C:/Users/<<USERNAME>>/.ssh/id_ed25519
Your public key has been saved in /C:/Users/<<USERNAME>>/.ssh/id_ed25519.pub
Publieke sleutel:
$env:USERPROFILE\.ssh\id_ed25519.pub
Privésleutel:$env:USERPROFILE\.ssh\id_ed25519
Stap 2: Publieke sleutel kopiëren naar server
cat $env:USERPROFILE\.ssh\id_ed25519.pub | ssh <<USER>>@<<SERVER>> "mkdir -p ~/.ssh; cat >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys"
Of kopieer de inhoud handmatig naar ~/.ssh/authorized_keys op de server.
Stap 3: Verbinding testen
ssh -i $env:USERPROFILE\.ssh\id_ed25519 <<USER>>@<<SERVER>>
Bevestig de vingerafdruk door “yes” te typen bij de eerste verbinding.
Linux Client
Stap 1: Sleutelpaar genereren
ssh-keygen -t ed25519 -C "<<EMAIL_ADDRESS>>"
Uitvoervoorbeeld:
Enter file in which to save the key (/home/<<USERNAME>>/.ssh/id_ed25519):
Enter passphrase (empty for no passphrase):
Publieke sleutel:
~/.ssh/id_ed25519.pub
Privésleutel:~/.ssh/id_ed25519
Stap 2: Publieke sleutel registreren
ssh-copy-id -i ~/.ssh/id_ed25519.pub <<USER>>@<<SERVER>>
Bevestig “yes” bij de eerste verbinding.
Stap 3: Verbinding testen
ssh -i ~/.ssh/id_ed25519 <<USER>>@<<SERVER>>
Gebruik van SSH-agent (met wachtwoordzin)
Als u een sleutel met wachtwoordzin gebruikt, kan een SSH-agent de sleutel tijdelijk in het geheugen bewaren zodat u het wachtwoord niet steeds hoeft in te voeren.
Stap 1: Agent starten
Windows
Set-Service -Name ssh-agent -StartupType Manual
Start-Service ssh-agent
Linux
eval "$(ssh-agent -s)"
Automatisch starten
Windows
Set-Service -Name ssh-agent -StartupType Automatic
Linux
Voeg toe aan ~/.bashrc of ~/.profile:
eval "$(ssh-agent -s)" > /dev/null
Stap 2: Sleutel toevoegen
Windows
ssh-add $env:USERPROFILE\.ssh\id_ed25519
Linux
ssh-add ~/.ssh/id_ed25519
Controleer:
ssh-add -l
SSH-configuratiebestand gebruiken
Maak verbinding eenvoudiger met een configuratiebestand.
Locatie:
- Windows:
C:\Users\<<USERNAME>>\.ssh\config - Linux:
~/.ssh/config
Voorbeeld:
Host myserver
HostName <<SERVER>>
User <<USER>>
IdentityFile ~/.ssh/id_ed25519
Port 22
Na configuratie:
ssh myserver
Meerdere servers
Host web
HostName 192.168.1.10
User ubuntu
IdentityFile ~/.ssh/id_ed25519
Host db
HostName 192.168.1.11
User ec2-user
IdentityFile ~/.ssh/id_ed25519
Voor maximale veiligheid: gebruik per server een eigen sleutelbestand.
Verifiëren van configuratie
Gebruik gedetailleerde uitvoer om fouten op te sporen:
ssh -vvv -i ~/.ssh/id_ed25519 <<USER>>@<<SERVER>>
Controleer of Authentication succeeded (publickey) wordt weergegeven.
Problemen oplossen
-
Server accepteert geen sleutelverificatie
Controleer ofPubkeyAuthentication yesactief is insshd_config. -
Sleutelregistratie onvolledig
Controleer de inhoud van~/.ssh/authorized_keysen de rechten (chmod 600). -
Verkeerde gebruikers- of hostnaam
Verifieer de juiste combinatie vanUserenHostName.
Samenvatting
SSH Openbare Sleutelverificatie maakt veilige verbindingen zonder wachtwoorden mogelijk.
Gebruik Ed25519 waar mogelijk, beheer sleutels zorgvuldig, en automatiseer het inladen via een SSH-agent voor efficiënt dagelijks gebruik.
