In het vorige artikel hebben we de basisprincipes van het ssh-commando en handige opties besproken. Het telkens handmatig invoeren van complexe IP‑adressen, gebruikersnamen en poortnummers is echter een flinke rompslomp.
Hier komt het SSH‑configuratiebestand om de hoek kijken: het verhelpt die rommel in één keer. Het is als een favorietenlijst waarin je vaak gebruikte servergegevens opslaat en via een alias snel kunt verbinden.
Ik herinner me nog de tijd dat ik het config‑bestand niet kende en als “volledig beginner” vaak een regel met een ingewikkeld ssh‑commando in mijn .bashrc als alias had gezet. Toen ik later de manier van het schrijven van een config‑bestand ontdekte, besefte ik hoe onhandig die aanpak was.

Wat is het SSH‑configuratiebestand?
SSH‑configuratiebestand is een configuratiebestand waarmee je het gedrag van de SSH‑client kunt aanpassen. Door verbindingsgegevens (gebruikersnaam, poort, sleutelbestand, etc.) voor een specifieke host op te slaan, kun je later met een korte alias verbinden.
-
Locatie: Meestal bevindt het zich als
configin de.ssh‑map van je home‑directory. Als je SSH voor het eerst hebt geïnstalleerd, bestaat het nog niet; maak het dan aan. -
Bestand aanmaken: Als
~/.ssh/confignog niet bestaat, maak het dan aan. Stel de rechten op 600 in.
bash
touch ~/.ssh/config
chmod 600 ~/.ssh/config # beveiliging vereist!
Regels voor het schrijven van het config‑bestand
Het config‑bestand is een eenvoudig tekstbestand. De instellingen voor elke host beginnen met het sleutelwoord Host en worden in een blok geschreven.
Basisstructuur
Host [alias]
[optie1] [waarde1]
[optie2] [waarde2]
...
Host [alias]: Geeft het begin van het blok aan en definieert de alias die je later gebruikt. Je kunt ook het daadwerkelijke hostadres (IP of domein) invoeren. Wildcards (*,?) zijn toegestaan.- Inspringen: De opties onder
Hostmoeten ingesprongen zijn. Je kunt spaties of tabs gebruiken, maar houd het consistent. - Opties: Onder
Hostkun je verschillende SSH‑opties opgeven die gelden voor die alias. Ze zijn identiek aan de opties die je metssh -optgebruikt.
Veelgebruikte opties
| Optie | Beschrijving | Voorbeeldwaarde |
HostName |
Het IP‑adres of domeinnaam van de server | 192.168.1.100 of example.com |
User |
Gebruikersnaam op de server | ubuntu, ec2-user, root |
Port |
SSH‑poort van de server (standaard 22) | 2222 |
IdentityFile |
Pad naar het privésleutelbestand | ~/.ssh/id_ed25519_myserver |
ForwardAgent |
SSH‑agent forwarding inschakelen | yes |
StrictHostKeyChecking |
Strikte host‑sleutelcontrole (yes aanbevolen) |
no (tijdelijk voor tests) |
PortForwarding |
Poortforwarding toestaan | yes |
LocalForward |
Lokale poortforwarding (-L optie) |
8080 localhost:80 |
ServerAliveInterval |
Interval (in seconden) om de server te controleren | 60 |
ServerAliveCountMax |
Aantal pogingen voordat de verbinding wordt verbroken | 3 |
Voorbeeld van het schrijven van een SSH‑configuratie
Laten we een paar vaak gebruikte servers toevoegen aan ~/.ssh/config.
# Eerste server: webserver (alias: webserver)
Host webserver
HostName 192.168.1.100
User ubuntu
Port 2222
IdentityFile ~/.ssh/id_ed25519_webserver # Specifieke sleutel voor webserver
# Tweede server: ontwikkelserver (alias: devbox)
Host devbox
HostName dev.example.com
User developer
IdentityFile ~/.ssh/id_rsa_dev # RSA‑sleutel
# Lokale poort 8000 naar de remote poort 80 forwarden
LocalForward 8000 localhost:80
# Derde server: alle AWS EC2‑servers (alias: aws-*)
Host aws-*
User ec2-user
IdentityFile ~/.ssh/aws_ec2_key.pem
# Regelmatig een signaal sturen om de verbinding te behouden
ServerAliveInterval 60
ServerAliveCountMax 3
# Algemene instellingen voor een IP‑bereik (alias: 10.0.0.*)
Host 10.0.0.*
User admin
Port 22
Uitleg:
webserver: Verbindt met192.168.1.100alsubuntuvia poort2222en de sleutelid_ed25519_webserver.devbox: Verbindt metdev.example.comalsdevelopermet de sleutelid_rsa_deven forwardt lokale poort8000naar remote poort80.aws-*: Toepast op elke alias die begint metaws-. Bijssh aws-prodworden deUserenIdentityFileautomatisch toegepast.10.0.0.*: Voor elke host in het bereik10.0.0.xwordt automatisch de gebruikeradminen poort22gebruikt.
In het voorbeeld is de wildcard
*geïntroduceerd, maar in de praktijk gebruik ik meestal één‑op‑één‑mappen. Het is echter handig als je meerdere servers met dezelfde configuratie hebt.

Hoe gebruik je het config‑bestand?
Nu je het bestand hebt opgeslagen, wordt het verbinden veel eenvoudiger. Laten we de voorbeelden uit het vorige hoofdstuk toepassen.
1. Verbinden met een alias
Gebruik alleen de alias om een SSH‑verbinding te starten.
- Alias
webservergebruiken:
ssh webserver
Enter passphrase for key '/home/youruser/.ssh/id_ed25519_webserver':
ubuntu@webserver-ip:~ $
Deze opdracht werkt intern als
ssh -p 2222 -i ~/.ssh/id_ed25519_webserver ubuntu@192.168.1.100.
- Alias
devboxgebruiken:
ssh devbox
Enter passphrase for key '/home/youruser/.ssh/id_rsa_dev':
developer@devbox-domain:~ $
(Tegelijkertijd wordt poort
8000naar80forwarden.)
Voordelen van het gebruik van een config‑bestand
- Gemak: Lange, complexe commando’s worden vervangen door een korte alias, waardoor fouten verminderen en tijd bespaard wordt.
- Productiviteit: Snelle toegang tot vaak gebruikte servers verhoogt de efficiëntie.
- Beheer: Alle verbindingsinstellingen op één plek; bij een IP‑verandering hoef je alleen het bestand aan te passen.
- Beveiliging: Gevoelige informatie (zoals sleutel‑paden) blijft uit de commandoregelgeschiedenis.
Tot slot
Het SSH‑configuratiebestand is een onmisbaar hulpmiddel voor elke ontwikkelaar en systeembeheerder die SSH gebruikt. Met dit bestand kun je je SSH‑ervaring aanzienlijk verbeteren. Open ~/.ssh/config, maak je eigen aliasen en geniet van een snellere, veiligere verbinding!
Lees ook andere artikelen over SSH! Zoek in de rechterkolom naar "ssh" om meer gerelateerde posts te vinden.
Heb je vragen? Laat het gerust weten in de reacties!