Wat is SSH?

SSH (Secure Shell) is een cryptografisch netwerkprotocol waarmee u via een onveilig netwerk versleuteld en geauthenticeerd kunt inloggen op een ander systeem, opdrachten kunt uitvoeren, bestanden kunt overdragen en verbindingen kunt tunnelen. SSH vervangt onveilige voorgangers als Telnet, rlogin en rsh, die wachtwoorden en opdrachten in leesbare tekst over het netwerk stuurden. Het protocol is het standaardgereedschap voor command-line beheer van servers, netwerkapparatuur en embedded systemen.

In OT-omgevingen wordt SSH vooral gebruikt voor beheer van Linux-gebaseerde apparaten, Firewalls, Bastion Hosts, switches, edge devices en industriële servers. Omdat een SSH-sessie vaak beheerrechten geeft, is SSH tegelijk een van de belangrijkste toegangspaden die een aanvaller wil misbruiken.


🕰️ Waar komt SSH vandaan?

De Finse onderzoeker Tatu Ylönen ontwierp SSH in 1995 aan de Technische Universiteit Helsinki, nadat op het universiteitsnetwerk wachtwoorden waren afgeluisterd. De eerste versie (SSH-1) verspreidde zich snel, maar bleek ontwerpfouten te hebben. De IETF werkte daarom een nieuwe, niet-compatibele versie uit: SSH-2, in 2006 vastgelegd in RFC 4250 tot en met 4254. SSH-1 geldt als verouderd en hoort overal uitgeschakeld te zijn.

Mijlpaal Jaar Betekenis
SSH-1 door Tatu Ylönen 1995 Eerste versleutelde vervanger van Telnet en rlogin
OpenSSH (OpenBSD-project) 1999 Open-source implementatie, nu de standaard op Linux, BSD en macOS
SSH-2 als IETF-standaard (RFC 4250–4254) 2006 Huidige protocolversie met sterkere sleuteluitwisseling en integriteit
OpenSSH 8.8: RSA met SHA-1 standaard uit 2021 Oude ssh-rsa-handtekeningen worden geweigerd
OpenSSH 9.0: hybride post-quantum sleuteluitwisseling als standaard 2022 Bescherming tegen “nu opslaan, later ontsleutelen”
OpenSSH 10.0: ML-KEM-hybride als standaard, DSA verwijderd 2025 Aansluiting bij post-quantumcryptografie

SSH draait standaard op TCP-poort 22. OpenSSH zit sinds Windows 10 (1809) en Windows Server 2019 ook als optionele component in Windows.


🧠 Hoe werkt SSH?

SSH-2 bestaat uit drie lagen die bovenop TCP samenwerken:

  1. Transportlaag - de client maakt verbinding met de server (meestal poort 22). Beide kanten onderhandelen over algoritmen en voeren een sleuteluitwisseling uit (bijvoorbeeld X25519 of een hybride met ML-KEM). De server bewijst zijn identiteit met een hostsleutel; de client vergelijkt die met de opgeslagen vingerafdruk in known_hosts. Daarna is het kanaal versleuteld en tegen manipulatie beschermd.
  2. Authenticatielaag - pas binnen dat versleutelde kanaal vindt de authenticatie van de gebruiker plaats: met een wachtwoord, een publieke sleutel, een SSH-certificaat of een hardwaresleutel (FIDO2).
  3. Verbindingslaag - de sessie wordt opgesplitst in kanalen voor een shell, losse opdrachten, bestandsoverdracht en port forwarding.

Een veelvoorkomende misvatting is dat alle SSH-verkeer “asymmetrisch versleuteld” wordt. In werkelijkheid gebruikt SSH asymmetrische cryptografie alleen voor de sleuteluitwisseling en voor handtekeningen (hostsleutel en gebruikerssleutel, zoals Ed25519, ECDSA of RSA). De eigenlijke data wordt met snelle symmetrische encryptie beschermd, zoals AES-GCM of ChaCha20-Poly1305.

Toepassingen van SSH:

  • Remote CLI-toegang tot servers, routers, switches en firewalls
  • SCP of SFTP voor veilige bestandsoverdracht; sinds OpenSSH 9.0 gebruikt het scp-commando onder de motorkap standaard het SFTP-protocol
  • Port forwarding en tunnels naar interne OT-systemen
  • Sessiebeheer via een Bastion Host of Jump Server, bijvoorbeeld met de optie ProxyJump
  • Automatisering van configuratie en back-ups met scripts en beheertools

SSH is een kerncomponent van veilige toegang op afstand in een Zero Trust OT-architectuur, mits elke sessie via een gecontroleerd toegangspunt loopt.


🔄 Wat is het verschil tussen SSH, Telnet en RDP?

Protocol Versleuteld Interface Standaardpoort Gebruik in OT
SSH ✅ Ja Command-line (CLI), tunnels TCP 22 Beheer van Linux-, firewall- en netwerkapparatuur
Telnet ❌ Nee Command-line (leesbare tekst) TCP 23 Vermijden: wachtwoorden zijn af te luisteren
RDP ✅ Ja Grafisch (GUI) TCP 3389 Toegang tot Windows-systemen zoals een Engineering Station
VPN (IPsec/TLS) ✅ Ja Netwerktoegang Verschilt Versleutelde toegang tot een heel netwerksegment, niet tot één systeem

Telnet komt in industriële netwerken nog voor op oudere switches, seriële servers en controllers. Het Mirai-botnet maakte in 2016 juist misbruik van Telnet-toegang met standaardwachtwoorden op honderdduizenden IoT-apparaten. Waar een apparaat zowel Telnet als SSH ondersteunt, schakelt u Telnet uit.


🏭 Hoe wordt SSH gebruikt in industriële netwerken?

  • Beheer van industriële Linux-apparaten - edge gateways, industriële pc’s, logservers en protocolconverters
  • Netwerkcomponenten - managed industriële switches, routers en firewalls bieden vrijwel altijd een SSH-CLI naast een webinterface
  • Toegang tot servers op niveau 3 van het Purdue Model, zoals de Historian of SIEM-logservers
  • Bastion Host met SSH-toegang als enige tussenstap naar interne Assets in de DMZ
  • Sleutelbeheer - toegang zonder wachtwoorden, met persoonlijke sleutels in plaats van gedeelde accounts
  • Logging en sessie-audit via Syslog, SIEM of Security Monitoring, eventueel met sessieopname

Let op: sommige oudere OT-apparaten hebben een verouderde SSH-implementatie die alleen zwakke algoritmen kent, of bevatten hardcoded sleutels en wachtwoorden. Moderne clients weigeren die verbinding vaak. Zet zwakke algoritmen dan niet globaal terug aan, maar beperk de uitzondering tot dat ene apparaat en plan vervanging.


🔐 Hoe beveiligt u SSH?

  • Gebruik sleutelauthenticatie (bij voorkeur Ed25519, sinds OpenSSH 9.5 het standaardtype van ssh-keygen) met een passphrase, en schakel wachtwoordlogin uit met PasswordAuthentication no
  • Schakel root-login uit met PermitRootLogin no; werk met persoonlijke accounts en verhoog rechten via sudo volgens least privilege
  • Beperk wie mag verbinden met AllowUsers of AllowGroups, en met Firewall-regels die alleen de bastion host of het beheersegment toelaten
  • Voeg een tweede factor toe via MFA of een FIDO2-hardwaresleutel (sleuteltypen ed25519-sk en ecdsa-sk, sinds OpenSSH 8.2)
  • Gebruik een bastion host of jump server voor toegang vanuit andere netwerken, gekoppeld aan PAM voor goedkeuring en sessieopname; port knocking verbergt alleen de poort en is geen vervanging
  • Beperk tooling op de jump server met application whitelisting, zodat alleen goedgekeurde beheerprogramma’s draaien
  • Log elke sessie centraal in uw SIEM en controleer regelmatig welke sleutels in authorized_keys staan
  • Houd OpenSSH bijgewerkt via patchmanagement en volg kwetsbaarheden via vulnerability management

Sleutels zijn geen wachtwoorden die verlopen: een vergeten sleutel van een vertrokken leverancier blijft jaren geldig. IEC 62443 (zoals de eisen voor authenticatormanagement en sterkte van sleutelgebaseerde authenticatie in IEC 62443-3-3) en ISO 27001 (beheer van authenticatie-informatie en cryptografie) vragen daarom om een aantoonbare levenscyclus: uitgifte, inventarisatie, intrekking en vervanging. Die standaarden schrijven geen vaste rotatietermijn voor SSH voor; die termijn legt u zelf vast in uw beleid, vaak met certificaatbeheer via kortlevende SSH-certificaten.


🛠️ Welke instellingen en kwetsbaarheden zijn in de praktijk belangrijk?

Een praktische hardening-aanpak voor SSH op OT-servers en gateways bestaat uit vijf stappen:

  1. Inventariseer alle systemen die poort 22 (of 23 voor Telnet) openhebben, inclusief netwerkapparatuur.
  2. Harden de serverconfiguratie (sshd_config), zie de tabel hieronder.
  3. Centraliseer toegang via één bastion host in de DMZ en blokkeer directe SSH vanuit kantoor-IT.
  4. Vervang gedeelde accounts door persoonlijke sleutels of certificaten en registreer wie welke sleutel heeft.
  5. Monitor en patch: stuur authenticatielogs naar het SIEM en update OpenSSH na beveiligingsreleases.
Instelling in sshd_config Standaardwaarde Aanbevolen in OT
PermitRootLogin prohibit-password no
PasswordAuthentication yes no (na uitrol van sleutels)
MaxAuthTries 6 3
LoginGraceTime 120 seconden 30 seconden
AllowTcpForwarding yes no, behalve op de jump server
ClientAliveInterval 0 (uit) 300, zodat verbroken verbindingen worden opgeruimd; inactieve sessies sluit u met ChannelTimeout (sinds OpenSSH 9.2)

Recente kwetsbaarheden laten zien waarom bijwerken telt. Terrapin (CVE-2023-48795, december 2023) was een man-in-the-middle-aanval op de handshake, opgelost met “strict KEX” in OpenSSH 9.6. regreSSHion (CVE-2024-6387, juli 2024) gaf onder voorwaarden ongeauthenticeerde code-uitvoering als root op Linux-systemen met glibc, voor OpenSSH 8.5p1 tot 9.8p1; versie 9.8 loste dit op. In maart 2024 werd bovendien een achterdeur in xz-utils (CVE-2024-3094) ontdekt die via een gekoppelde bibliotheek op de SSH-server mikte: een voorbeeld van een aanval via de toeleveringsketen. Op OT-apparaten zit SSH vaak ingebakken in de firmware, dus daar bent u afhankelijk van de fabrikant.

Voor de keuze van algoritmen publiceert het Duitse BSI de technische richtlijn TR-02102-4, die jaarlijks wordt bijgewerkt. In Nederland en de EU wordt veilige toegang op afstand een wettelijke zorgplicht: de Cyberbeveiligingswet (in werking per 15 augustus 2026) vraagt passende maatregelen voor toegangsbeheer en cryptografie, en de Cyber Resilience Act verplicht fabrikanten om actief misbruikte kwetsbaarheden te melden vanaf 11 september 2026 en om producten vanaf 11 december 2027 veilig standaard te configureren.


❓ Veelgestelde vragen

Is SSH veilig genoeg voor toegang op afstand tot OT-systemen?

SSH zelf is cryptografisch sterk als u een actuele versie en moderne algoritmen gebruikt. Het risico zit vooral in slecht sleutelbeheer, wachtwoordlogin en directe blootstelling aan internet. Bied SSH naar OT-systemen daarom alleen aan via een bastion host met MFA en logging.

Op welke poort draait SSH?

SSH gebruikt standaard TCP-poort 22. SSH naar een andere poort verplaatsen vermindert automatische scans in logbestanden, maar is geen beveiligingsmaatregel. Beperk de toegang tot poort 22 liever met firewallregels tot bekende beheersystemen.

Wat is het verschil tussen SSH, SCP en SFTP?

SSH is het onderliggende protocol voor versleutelde verbindingen. SFTP is een bestandsoverdrachtprotocol dat binnen een SSH-kanaal draait, en SCP is een ouder kopieercommando dat sinds OpenSSH 9.0 standaard ook SFTP gebruikt. Alle drie delen dezelfde authenticatie en versleuteling.

Welk type SSH-sleutel kunt u het beste gebruiken?

Ed25519 is de gangbare keuze: compact, snel en standaard in recente OpenSSH-versies. RSA met minimaal 3072 bits blijft bruikbaar voor oudere apparaten, maar DSA is verouderd en in OpenSSH 10.0 verwijderd. Voor beheerders met hoge rechten bieden FIDO2-sleutels (ed25519-sk) extra bescherming, omdat de privésleutel de hardware niet verlaat.

Is SSH bestand tegen quantumcomputers?

OpenSSH gebruikt sinds versie 9.0 standaard een hybride post-quantum sleuteluitwisseling, en sinds versie 10.0 de variant op basis van ML-KEM. Dat beschermt onderschept SSH-verkeer tegen ontsleutelen met een toekomstige quantumcomputer, mits beide kanten zo’n algoritme ondersteunen. De handtekeningen voor host- en gebruikerssleutels zijn nog niet post-quantum.

Waarom wordt SSH in OT vaak via een jump server gebruikt?

Een jump server bundelt alle SSH-toegang tot het OT-netwerk op één gecontroleerd punt. Daar kunt u MFA afdwingen, sessies opnemen en toegang per leverancier of tijdvenster beperken. Zo hoeft geen enkel OT-apparaat rechtstreeks bereikbaar te zijn vanuit kantoor-IT of internet.


📌 Samengevat

SSH (Secure Shell) is het versleutelde standaardprotocol voor beheer op afstand van OT- en IT-systemen, van Linux-servers tot industriële switches en firewalls. Het protocol zelf is sterk, maar de veiligheid staat of valt met sleutelbeheer, uitgeschakelde wachtwoord- en root-login, toegang via een bastion host, logging in het SIEM en tijdig patchen, in lijn met IEC 62443 en ISO 27001 en als onderdeel van goede compliance.