Een verbinding maken via SSH is een essentieel vaardigheid voor iedereen die een website of server beheert. SSH (Secure Shell) biedt een veilige, versleutelde verbinding met je server waarmee je commando's kunt uitvoeren, bestanden kunt beheren en configuraties kunt aanpassen. In deze complete handleiding leer je stap voor stap hoe je een verbinding maken via SSH kunt, ongeacht of je Windows, Mac of Linux gebruikt.

Wat is SSH en waarom een verbinding maken via SSH?

SSH staat voor Secure Shell en is een netwerkprotocol dat een beveiligde verbinding opzet tussen je computer en een externe server. Alle data die via SSH wordt verstuurd, inclusief wachtwoorden en commando's, wordt versleuteld. Dit maakt het veilig om gevoelige taken uit te voeren zoals serverbeheer, zelfs over onbeveiligde netwerken. Een verbinding maken via SSH is de standaard manier om VPS-servers en dedicated servers te beheren.

SSH vs. andere verbindingsmethoden

ProtocolVersleuteldGebruikVeiligheid
SSHJa (volledig)Serverbeheer, bestandsoverdrachtUitstekend
FTPNeeBestandsoverdrachtOnveilig
SFTPJa (via SSH)BestandsoverdrachtUitstekend
TelnetNeeServerbeheer (verouderd)Onveilig
RDPJaWindows remote desktopGoed

Zoals je ziet is SSH veel veiliger dan traditionele protocollen als FTP en Telnet. Waar je vroeger FTP gebruikte voor bestandsoverdracht, kun je met SSH ook bestanden beheren via SFTP of SCP.

Wat heb je nodig om een ssh verbinding maken?

Voordat je een ssh verbinding maken kunt, heb je de volgende informatie nodig van je hostingprovider:

  • Server IP-adres of hostnaam - het adres van je server
  • Gebruikersnaam - vaak "root" voor een nieuwe VPS, of een aangepaste gebruiker
  • Wachtwoord of SSH-key - je authenticatiemethode
  • Poortnummer - standaard poort 22, maar soms aangepast voor extra beveiliging
  • SSH-client - software waarmee je de verbinding maakt

SSH verbinding maken op Windows

Windows 10 en 11 hebben een ingebouwde SSH-client, waardoor je geen extra software meer hoeft te installeren om een ssh verbinding maken uit te voeren.

Methode 1: Windows Terminal of PowerShell

  1. Open Windows Terminal of PowerShell (zoek in het startmenu)
  2. Typ het SSH-commando: ssh gebruikersnaam@ip-adres
  3. Als de poort niet standaard is (22), gebruik: ssh -p poortnummer gebruikersnaam@ip-adres
  4. Bij de eerste verbinding vraagt SSH of je de server-fingerprint vertrouwt - typ "yes"
  5. Voer je wachtwoord in (de tekens worden niet getoond, dit is normaal)
  6. Je bent nu verbonden met je server

Methode 2: PuTTY (klassieke SSH-client)

PuTTY is al jarenlang de meest populaire SSH-client voor Windows en biedt extra functies zoals opgeslagen sessies en port forwarding:

  1. Download PuTTY van de officiele website (putty.org)
  2. Open PuTTY en voer het IP-adres in bij "Host Name"
  3. Controleer dat de poort correct is (standaard 22)
  4. Selecteer "SSH" als verbindingstype
  5. Optioneel: sla de sessie op voor later gebruik
  6. Klik op Open
  7. Accepteer de server-fingerprint bij de eerste verbinding
  8. Log in met je gebruikersnaam en wachtwoord

SSH verbinding maken op macOS

macOS heeft een ingebouwde SSH-client in de Terminal-applicatie. Het ssh verbinding maken op Mac is bijzonder eenvoudig:

  1. Open Terminal (Programmas > Hulpprogrammas > Terminal, of zoek via Spotlight)
  2. Typ: ssh gebruikersnaam@ip-adres
  3. Voor een niet-standaard poort: ssh -p poortnummer gebruikersnaam@ip-adres
  4. Accepteer de server-fingerprint bij de eerste verbinding ("yes")
  5. Voer je wachtwoord in
  6. Je bent verbonden

SSH verbinding maken op Linux

Linux heeft SSH standaard geinstalleerd. Open je terminal en gebruik dezelfde commando's als op macOS. De SSH-client is beschikbaar op alle Linux-distributies zonder extra installatie.

SSH-keys instellen: veiliger dan wachtwoorden

Het gebruik van SSH-keys in plaats van wachtwoorden is de aanbevolen methode voor het ssh verbinding maken. SSH-keys zijn cryptografische sleutelparen die vrijwel onmogelijk te kraken zijn.

SSH-key genereren

  1. Open je terminal (op Windows: PowerShell)
  2. Voer het commando uit: ssh-keygen -t ed25519 -C "je-email@domein.nl"
  3. Kies een locatie voor de sleutel (standaard is prima)
  4. Voer optioneel een wachtwoordzin (passphrase) in voor extra beveiliging
  5. Er worden twee bestanden aangemaakt: de private key (bewaar geheim) en de public key (.pub)

Public key naar server kopieren

Kopieer je publieke sleutel naar de server met het commando ssh-copy-id:

ssh-copy-id -i ~/.ssh/id_ed25519.pub gebruikersnaam@ip-adres

Na het kopieren kun je inloggen zonder wachtwoord. De server verifieert je identiteit aan de hand van je private key die op je computer staat.

SSH configuratiebestand: verbindingen opslaan

Als je regelmatig verbinding maakt met meerdere servers, kun je het ssh verbinding maken vereenvoudigen met een SSH-configuratiebestand (~/.ssh/config). Hierin definieer je aliassen voor je servers:

Voorbeeld SSH config

In je SSH-configuratiebestand kun je voor elke server een blok aanmaken met de hostnaam, het IP-adres, de gebruikersnaam, het poortnummer en het pad naar de juiste SSH-key. Na configuratie hoef je alleen nog een kort alias te typen om verbinding te maken, in plaats van het volledige commando met alle parameters.

Bestanden overdragen via SSH

Naast serverbeheer kun je SSH ook gebruiken voor het veilig overdragen van bestanden. Er zijn twee hoofdmethoden:

SCP (Secure Copy)

  • Bestand uploaden: scp bestand.txt gebruiker@server:/pad/naar/doel/
  • Bestand downloaden: scp gebruiker@server:/pad/naar/bestand.txt ./lokaal/
  • Map uploaden: scp -r mapnaam/ gebruiker@server:/pad/naar/doel/

SFTP (SSH File Transfer Protocol)

SFTP biedt een interactieve bestandsoverdracht-sessie via SSH. Je kunt navigeren, bestanden bekijken en overdragen met commando's als ls, cd, get en put. Veel grafische FTP-clients zoals FileZilla ondersteunen ook SFTP-verbindingen.

SSH tunneling en port forwarding

Een geavanceerde toepassing van SSH is het opzetten van tunnels, waarmee je verkeer van je lokale computer via de server kunt routeren. Dit is nuttig voor het veilig benaderen van services die niet direct bereikbaar zijn, zoals een phpMyAdmin-installatie die alleen lokaal bereikbaar is.

Local port forwarding

Met local port forwarding maak je een service op de server bereikbaar via een poort op je lokale computer. Hierdoor kun je bijvoorbeeld phpMyAdmin in je browser openen via localhost, terwijl het daadwerkelijk op de server draait.

Remote port forwarding

Remote port forwarding werkt in de omgekeerde richting: het maakt een service op je lokale computer bereikbaar via de server. Dit is handig voor het demonstreren van een lokale ontwikkelomgeving aan anderen.

Veelvoorkomende SSH-problemen oplossen

Bij het ssh verbinding maken kun je tegen verschillende problemen aanlopen. Hier zijn de meest voorkomende issues en hun oplossingen:

Connection refused

Dit betekent dat de SSH-service niet draait op de server of dat een firewall de verbinding blokkeert. Controleer of de SSH-service actief is en of de juiste poort is geopend in de firewall.

Permission denied

Je wachtwoord of SSH-key wordt niet geaccepteerd. Controleer of je de juiste gebruikersnaam en wachtwoord gebruikt. Bij SSH-keys, verifieer dat je publieke sleutel correct op de server staat en dat de permissies van de .ssh-map correct zijn (700 voor de map, 600 voor de bestanden).

Connection timed out

De server reageert niet. Controleer of het IP-adres correct is, of de server online is en of er geen netwerkproblemen zijn. Check ook of de SSH-poort niet is gewijzigd.

Host key verification failed

De fingerprint van de server is veranderd sinds je laatste verbinding. Dit kan gebeuren na een herinstallatie van de server. Als je zeker weet dat de server legitiem is, verwijder dan de oude key uit je known_hosts bestand.

SSH beveiligings best practices

Een ssh verbinding maken is inherent veilig dankzij versleuteling, maar er zijn aanvullende maatregelen die de beveiliging verder versterken:

  • Gebruik SSH-keys in plaats van wachtwoorden
  • Schakel wachtwoord-authenticatie uit na het instellen van keys
  • Wijzig de standaard SSH-poort van 22 naar een willekeurig nummer
  • Blokkeer root-login via SSH (gebruik een sudo-gebruiker)
  • Installeer fail2ban om brute-force aanvallen te blokkeren
  • Houd je SSH-client en server up-to-date
  • Gebruik een passphrase op je private key

Bekijk ook onze gids over website beveiligen voor meer beveiligingsmaatregelen die je kunt nemen nadat je een SSH-verbinding hebt opgezet.

Het ssh verbinding maken is een fundamentele vaardigheid die elke website- en serverbeheerder moet beheersen. Met de stappen in deze handleiding kun je veilig verbinding maken met je server, bestanden overdragen en geavanceerde functies als SSH-tunneling benutten. Begin met de basisfuncties en breid je kennis geleidelijk uit naarmate je meer ervaring opdoet met serverbeheer.

SSH in de praktijk: veelgebruikte workflows

Na het leren van de basis zijn er praktische SSH-workflows die je dagelijks serverbeheer efficienter maken.

Meerdere servers beheren met SSH

Als je meerdere servers beheert, wordt een goed georganiseerd SSH-configuratiebestand onmisbaar. Definieer aliassen voor al je servers zodat je met een kort commando kunt verbinden. Gebruik tools als Ansible of Fabric om dezelfde commando's op meerdere servers tegelijk uit te voeren. Dit bespaart enorm veel tijd bij taken als het uitrollen van updates of het controleren van de serverstatus.

SSH agent forwarding

SSH agent forwarding stelt je in staat om je lokale SSH-keys te gebruiken via een tussenliggende server. Dit is nuttig wanneer je vanaf een bastion host verbinding maakt met interne servers. In plaats van je private key op de tussenliggende server te plaatsen, wordt de authenticatie doorgestuurd naar je lokale SSH-agent. Dit verhoogt de veiligheid aanzienlijk.

Automatische taken via SSH

Combineer een ssh verbinding maken met scripting om taken te automatiseren. Je kunt vanuit een lokaal script SSH-commando's uitvoeren op een externe server zonder interactief in te loggen. Dit is de basis voor deployment scripts, monitoring checks en geautomatiseerde backups. Zorg dat de SSH-key authenticatie correct is geconfigureerd voor wachtwoordloze toegang.

SSH alternatieven en aanvullende tools

Naast de standaard SSH-client zijn er aanvullende tools die je ervaring met remote serverbeheer verbeteren. Mosh (Mobile Shell) is een SSH-alternatief dat beter omgaat met instabiele internetverbindingen en automatisch opnieuw verbindt na onderbrekingen. Dit is bijzonder nuttig als je onderweg bent en ssh verbinding maken doet via mobiel internet. Termius en Royal TSX bieden grafische SSH-clients met geavanceerde functies als tabbladen, sessie-management en SFTP-integratie. Voor Windows-gebruikers biedt Windows Terminal een moderne interface die SSH-verbindingen combineert met PowerShell en WSL-sessies in een enkel venster met tabbladen en aanpasbare themas.

SSH Verbinding Maken: Geavanceerde Configuratie met Config-bestand

Wanneer je regelmatig verbinding maakt met meerdere servers, wordt het typen van volledige SSH-commando's snel onpraktisch. Het SSH config-bestand biedt een elegante oplossing door verbindingsgegevens op te slaan en hergebruikbaar te maken.

Het config-bestand bevindt zich op ~/.ssh/config en bevat blokken per server met alle verbindingsinstellingen. Hiermee kun je in plaats van een lang commando met poort, gebruikersnaam en sleutelbestand simpelweg een korte alias gebruiken.

Handige SSH Config-opties

OptieFunctieVoorbeeld
HostAlias voor de verbindingHost mijn-server
HostNameIP-adres of domeinnaamHostName 192.168.1.100
UserGebruikersnaamUser admin
PortSSH-poortnummerPort 7777
IdentityFilePad naar private keyIdentityFile ~/.ssh/id_server
ServerAliveIntervalKeep-alive interval in secondenServerAliveInterval 60
ProxyJumpVia een andere server verbindenProxyJump bastion

Met ProxyJump kun je via een bastion host of jump server verbinding maken met servers die niet direct bereikbaar zijn via internet. Dit is een veelgebruikte beveiligingsmaatregel waarbij alle SSH-toegang via een centraal punt wordt gerouteerd.

SSH Verbinding Maken: Tunneling en Port Forwarding

SSH is veel meer dan alleen een terminal-verbinding. Met SSH-tunneling kun je veilige verbindingen opzetten naar diensten die normaal niet direct bereikbaar zijn. Dit is een onmisbare techniek voor het veilig beheren van databases, webinterfaces en andere services op je server.

Er zijn drie vormen van SSH port forwarding:

  • Local port forwarding (-L) — Maak een service op de server bereikbaar via een lokale poort. Ideaal om bijvoorbeeld phpMyAdmin of Grafana lokaal te benaderen zonder ze publiek te openen.
  • Remote port forwarding (-R) — Maak een lokale service bereikbaar via de server. Handig voor het testen van webhooks of het delen van een lokale ontwikkelomgeving.
  • Dynamic port forwarding (-D) — Creeer een SOCKS-proxy via de server. Al je verkeer wordt versleuteld via de SSH-verbinding gerouteerd.

Local port forwarding is de meestgebruikte variant. Stel dat je een MySQL-database op je server draait die alleen lokaal bereikbaar is (best practice voor VPS-beveiliging). Met local port forwarding verbind je je lokale poort 3306 met de MySQL-poort op de server, zodat je met een lokale databaseclient kunt werken alsof de database op je eigen computer draait.

SSH Beveiliging: Sleutelbeheer en Best Practices

Een SSH-verbinding is veilig, maar alleen als je de sleutels en configuratie correct beheert. Volg deze best practices voor maximale veiligheid:

  1. Gebruik ED25519-sleutels — Dit is het modernste en veiligste sleuteltype. RSA-sleutels zijn nog steeds veilig bij 4096 bits, maar ED25519 is sneller en compacter.
  2. Bescherm sleutels met een wachtwoordzin — Een passphrase op je private key beschermt je zelfs als iemand toegang krijgt tot je computer. Gebruik ssh-agent om de passphrase te cachen zodat je hem niet steeds opnieuw hoeft in te voeren.
  3. Roteer sleutels periodiek — Genereer jaarlijks nieuwe sleutelparen en verwijder oude public keys van je servers.
  4. Beperk sleutels per server — Gebruik aparte sleutelparen voor verschillende servers. Als een sleutel gecompromitteerd raakt, beperkt dit de schade.
  5. Configureer AllowUsers — Specificeer in sshd_config welke gebruikers mogen inloggen via SSH. Dit voorkomt toegang via onbedoelde accounts.

Combineer SSH-beveiliging met two-factor authenticatie voor maximale bescherming. Gebruik Linux commando's om regelmatig je SSH-configuratie en verbonden sleutels te controleren op je server.

SSH Verbinding Maken: Veelvoorkomende Problemen Oplossen

Bij het opzetten en onderhouden van SSH-verbindingen loop je regelmatig tegen problemen aan. Het snel kunnen diagnosticeren en oplossen van deze problemen is essentieel voor effectief serverbeheer.

Het meest voorkomende probleem is "Connection refused". Dit betekent dat de SSH-dienst niet draait op de server of dat een firewall de verbinding blokkeert. Controleer via het hosting-paneel of de server is ingeschakeld en of SSH-poort open staat. "Permission denied (publickey)" wijst erop dat je SSH-sleutel niet wordt geaccepteerd. Controleer of je public key correct is toegevoegd aan het authorized_keys-bestand op de server en of de bestandsrechten correct zijn ingesteld (700 voor de .ssh-directory en 600 voor authorized_keys).

"Connection timed out" duidt vaak op een netwerkprobleem of verkeerde hostname en poort. Controleer of je het juiste IP-adres en poortnummer gebruikt. Bij "Host key verification failed" is de server-sleutel gewijzigd sinds je laatste verbinding, wat kan wijzen op een herinstallatie maar ook op een man-in-the-middle aanval. Verifieer via een alternatief kanaal dat de server daadwerkelijk is gewijzigd voordat je de oude sleutel verwijdert.

SSH Verbinding Maken: SFTP en SCP voor Bestandsoverdracht

Een SSH-verbinding biedt niet alleen terminal-toegang maar ook veilige bestandsoverdracht via SFTP en SCP. Beide protocollen gebruiken de bestaande SSH-verbinding voor versleutelde bestandstransfers, wat ze veiliger maakt dan onversleuteld FTP.

SCP (Secure Copy) is ideaal voor snelle, eenmalige bestandsoverdrachten. De syntaxis lijkt op het cp-commando maar werkt over het netwerk. SFTP (SSH File Transfer Protocol) biedt een interactieve sessie vergelijkbaar met traditioneel FTP maar volledig versleuteld. SFTP ondersteunt daarnaast het hervatten van onderbroken transfers, directory-listings en bestandsbeheer op de server. Voor grafische bestandsoverdracht kun je tools als FileZilla, WinSCP of Cyberduck gebruiken. Deze ondersteunen SFTP en bieden een vertrouwde drag-and-drop interface voor bestandsbeheer op je server.

SSH Verbinding: Automatisering en Scripting

De kracht van SSH-verbindingen komt pas echt tot zijn recht wanneer je ze combineert met automatisering. Met SSH kun je commando's uitvoeren op remote servers zonder interactieve sessie, wat de basis vormt voor geautomatiseerd serverbeheer en deployment-workflows.

Remote commando-uitvoering via SSH stelt je in staat om taken op meerdere servers tegelijkertijd uit te voeren. Dit is bijzonder waardevol voor het toepassen van beveiligingsupdates, het controleren van serverstatus of het uitrollen van configuratiewijzigingen naar een vloot van servers. Tools als Ansible, Puppet en Chef bouwen voort op SSH om volledige server-configuratie te automatiseren en reproduceerbaar te maken.

Voor eenvoudige automatisering volstaat een Bash-script dat via SSH commando's uitvoert op je servers. Combineer dit met cron-jobs voor periodieke taken zoals het controleren van schijfruimte, het vernieeuwen van SSL-certificaten of het maken van backups. Zorg dat je SSH-sleutels zonder passphrase gebruikt voor geautomatiseerde taken, maar beperk deze sleutels via het authorized_keys-bestand tot specifieke commando's zodat ze niet misbruikt kunnen worden voor onbeperkte toegang.