SSH-server installeren op Windows Server

Overzicht

Dit artikel legt stap voor stap uit hoe je de OpenSSH Server installeert op Windows Server, inclusief sleutelverificatie, serviceconfiguratie en firewallinstellingen.

Variabelenoverzicht

Variabelenaam Voorbeeld Opmerking
<<SERVER>> 192.168.1.10 Hostnaam of IP-adres van de server

Stap 1: Installeer OpenSSH Server

Open PowerShell met beheerdersrechten en voer het volgende commando uit:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Stap 2: Start de service en stel automatisch starten in

Na installatie, start de SSH-server (sshd) en stel deze in om automatisch te starten:

# Start de service
Start-Service sshd

# Automatisch opstarten inschakelen
Set-Service -Name sshd -StartupType Automatic

💡 Opmerking
Bij de eerste start van de sshd-service worden automatisch configuratiebestanden en hostsleutels aangemaakt:

  • %ProgramData%\ssh\sshd_config (configuratiebestand)
  • %ProgramData%\ssh\ssh_host_* (hostsleutels)

Pas de configuratie pas aan nadat deze bestanden zijn aangemaakt.

Stap 3: Firewall configureren

Sta inkomende SSH-verbindingen (poort 22) toe via de Windows Defender Firewall:

New-NetFirewallRule -Name "OpenSSH-Server" -DisplayName "OpenSSH Server (sshd)" `
  -Enabled True -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow

Stap 4: Sleutelverificatie configureren (aanbevolen)

  1. SSH-sleutels genereren en instellen aan de clientzijde

  2. Voeg de publieke sleutel toe aan het bestand authorized_keys:

    • Voor normale gebruikers: plaats in C:\Users\<user>\.ssh\authorized_keys
    • Voor beheerders: plaats in %ProgramData%\ssh\administrators_authorized_keys
  3. Controleer of pas het volgende aan in sshd_config (meestal %ProgramData%\ssh\sshd_config):

    PubkeyAuthentication yes
    AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    

Stap 5: Eerste verbinding testen

Verbind vanaf de client met:

ssh Administrator@<<SERVER>>

Bij de eerste verbinding wordt gevraagd om de host key te bevestigen.
Controleer na inloggen met whoami of je bent aangemeld als de verwachte gebruiker.

Stap 6: Beperkingen en beveiligingsversterking

  • Voeg de volgende regels toe of wijzig ze in sshd_config:

    Port 2222
    AllowGroups SSHAdmins
    AllowUsers Administrator deployuser
    PasswordAuthentication no
    KbdInteractiveAuthentication no
    PubkeyAuthentication yes
    
    • Port 2222: verander de standaardpoort (22) om veelvoorkomende aanvallen te verminderen.
    • AllowGroups SSHAdmins: beperk toegestane groepen om risico’s te verkleinen.
    • AllowUsers Administrator deployuser: sta alleen specifieke gebruikers toe.
    • PasswordAuthentication no: schakel wachtwoordaanmelding uit en gebruik alleen sleutelverificatie.
    • KbdInteractiveAuthentication no: schakel interactieve toetsenbordauthenticatie uit.
    • PubkeyAuthentication yes: gebruik sleutelverificatie voor meer veiligheid.

    ℹ️ Opmerking
    Vanaf Windows Server 2025 kan groepsbeperking standaard zijn ingeschakeld. In sommige taalversies werkt de ingebouwde groep "OpenSSH Users" mogelijk niet correct.
    Zorg dat de groep SSHAdmins en gebruiker deployuser van tevoren zijn aangemaakt met minimale rechten.

  • Stel LogLevel VERBOSE in om uitgebreide verbindingslogs te verzamelen.

Stap 7: Logs bekijken

Bekijk recente SSH-logs in PowerShell:

Get-WinEvent -LogName OpenSSH/Operational `
  | Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } `
  | Select-Object TimeCreated, Id, LevelDisplayName, Message

💡 Tip
Controleer de beschikbare lognamen met:

wevtutil el | findstr OpenSSH

Gebruik de weergegeven lognaam voor -LogName.

Samenvatting

Met een correct geconfigureerde OpenSSH-server kun je Windows Server beheren zoals Linux/Unix-systemen.
Door sleutelverificatie, firewallregels en service-instellingen goed te configureren, bouw je een veilige en betrouwbare remote-beheeromgeving.