Hoe stel je een SSH-server in en configureer je deze op Windows met OpenSSH?

Wil je van je Windows-computer een volwaardige SSH-server maken? Goed idee. De ingebouwde OpenSSH-server is al sinds versie 1803 (Windows 10) onderdeel van Windows en is ook beschikbaar in Windows 11 en Server-edities – best vreemd dat Microsoft het nu zo makkelijk heeft gemaakt. Maar er is een probleem: het correct instellen, ervoor zorgen dat alles soepel verloopt en een veilige verbinding tot stand brengen kan best lastig zijn, vooral als je dit voor de eerste keer doet. Deze handleiding behandelt de stappen, enkele veelvoorkomende valkuilen en handige tips om frustratie te voorkomen. Kortom, je kunt via SSH verbinding maken met je Windows-pc, net zoals Linux-gebruikers dat doen, maar dan met een grafische interface die het beheren van externe verbindingen een stuk eenvoudiger maakt.

Of je dit nu wilt instellen voor scripting op afstand, het beheren van meerdere servers of gewoon wilt experimenteren met beveiligde toegang, het doel is een betrouwbare, werkende SSH-server. Je leert hoe je een SSH-server installeert, configureert, problemen oplost en verbinding maakt, plus enkele tips voor het aanpassen van beveiligingsinstellingen. Zodra alles correct is geconfigureerd, krijg je een beveiligde shell die daadwerkelijk werkt zonder al te veel gedoe. Als dit je eerste keer is, geen zorgen – veel mensen lopen tegen problemen aan, maar de meeste problemen zijn eenvoudig op te lossen als je weet waar je moet zoeken.

Hoe u veelvoorkomende problemen met de ingebouwde SSH-server van Windows kunt oplossen

Methode 1: De OpenSSH-server installeren en verifiëren

Zorg er eerst voor dat de OpenSSH-server correct is geïnstalleerd. Je kunt deze installeren via PowerShell – en geloof me, dit is de meest eenvoudige methode:

  • Open een PowerShell-venster met beheerdersrechten (uitvoeren als beheerder).
  • Voer dit commando uit om het pakket te zoeken en te installeren:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH. Server*' | Add-WindowsCapability -Online

Met dit commando wordt het serverpakket gedownload en geïnstalleerd als het nog niet is geïnstalleerd. Als uw pc online is, zou het automatisch moeten downloaden en installeren. Bij sommige configuraties moet u mogelijk controleren of de installatie correct is verlopen. Voer hiervoor het volgende commando uit:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH. Server*'

Controleer of de status ‘Installed’ is. Zo niet, probeer dan de opdracht opnieuw uit te voeren of de computer opnieuw op te starten.

Je kunt dit ook doen via het instellingenpaneel:

  • Ga naar Instellingen > Apps > Optionele functies > Een functie toevoegen
  • Scroll naar beneden, zoek OpenSSH Server en klik op Installeren.

Als je offline bent, wordt het ingewikkelder. Je hebt de Feature on Demand ISO nodig om de functie handmatig toe te voegen — je moet het CAB-bestand uitpakken en vervolgens PowerShell gebruiken om te installeren vanaf een lokale bron, zoals dit:

Add-WindowsCapability -Name OpenSSH. Server~~~~0.0.1.0 -Online -Source E:\FOD

Ja, het is lastig, maar het werkt. Microsoft biedt ook MSI-installatieprogramma’s aan op hun GitHub-repository, wat het leven soms een stuk makkelijker maakt:

https://github.com/PowerShell/Win32-OpenSSH/releases/

Bevestig de installatie met:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH. Server*'

en controleer of er staat: Status: Geïnstalleerd.

Methode 2: Het beheren van de SSH-service en firewallinstellingen

De SSH-server installeert twee services: sshd (uw daadwerkelijke server) en ssh-agent, die sleutels beheert als u sleutelauthenticatie gebruikt. Om SSH soepel te laten werken, moet u sshd zo instellen dat het automatisch start en het vervolgens handmatig starten:

Set-Service -Name sshd -StartupType 'Automatic' Start-Service sshd

Het startcommando is de gebruikelijke PowerShell-magie. Als je verbindingsproblemen ondervindt, controleer dan of poort 22 luistert met:

netstat -na | find ":22"

Controleer ook of Windows Firewall inkomende SSH-verbindingen niet blokkeert:

Get-NetFirewallRule -Name *OpenSSH-Server* | select Name, DisplayName, Enabled

Als de regel niet actief is, schakel hem dan in:

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

Uit uw ervaring blijkt dat het niet ongebruikelijk is dat de firewallregel ontbreekt of is uitgeschakeld, waardoor SSH-verbindingen als een baksteen worden geblokkeerd. Controleer ook of de OpenSSH-executables aanwezig zijn C:\Windows\System32\OpenSSH\. Zonder deze componenten werkt SSH gewoonweg niet.

Methode 3: sshd_config configureren en problemen oplossen

Het belangrijkste configuratiebestand is %programdata%\ssh\sshd_config. Als je SSH-verbinding niet werkt, is dit de eerste plek waar je moet kijken. Je kunt het bewerken met Kladblok of een andere teksteditor:

start-process notepad C:\Programdata\ssh\sshd_config

Enkele veelvoorkomende aanpassingen: als u problemen ondervindt met gebruikerstoegang, probeer dan richtlijnen toe te voegen of aan te passen, zoals:

AllowGroups sshadmins DenyGroups Administrators DenyUsers woshub\ [email protected]

Alles wat te maken heeft met gebruikersrechten, weigeringsregels en toegestane groepen. Houd er rekening mee dat richtlijnen in een bepaalde volgorde worden verwerkt, dus weigeringsregels moeten doorgaans vóór toestemmingsregels komen.

Overigens, als je SSH op een niet-standaard poort wilt gebruiken (bijvoorbeeld om veiligheidsredenen of vanwege conflicten), wijzig dan de Port- richtlijn in sshd_config:

Port 2222

Na elke wijziging dient u sshd opnieuw op te starten:

Restart-Service sshd

Controleer met netstat of je poort actief is. Soms is een kleine aanpassing in dat bestand al voldoende om verbindingsproblemen op te lossen.

Methode 4: Correct verbinden en authenticeren

Zodra uw server actief is, kunt u verbinding maken met de ingebouwde Windows SSH-client of een client van derden zoals PuTTY. Open een opdrachtprompt en voer het volgende commando uit:

ssh username@hostname-or-ip

waarbij gebruikersnaam uw Windows-account is. Voor domeinaccounts gebruikt u:

[email protected]

of voor het NetBIOS-domein\gebruiker-formaat:

woshub\max@hostname

In sommige configuraties wilt u mogelijk Kerberos SSO gebruiken, wat betekent dat u uw wachtwoord niet hoeft in te voeren. Schakel dit GSSAPIAuthentication yesin sshd_configen maak vervolgens verbinding met: ssh -K hostname.

Bij de eerste verbinding krijg je mogelijk een waarschuwing over de hostsleutel; accepteer deze. Daarna krijg je een shellprompt en werken alle gebruikelijke commando’s. Als je liever standaard PowerShell gebruikt binnen SSH, kun je het register aanpassen om PowerShell als standaard shell in te stellen.

New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force

Maak vervolgens opnieuw verbinding en je ziet een PowerShell-prompt in plaats van CMD. Ik weet niet zeker waarom het werkt, maar die kleine aanpassing in het register heeft voor velen het probleem opgelost.

Methode 5: Logboekcontrole en probleemoplossing

Standaard registreert Windows SSH-gebeurtenissen via ETW, niet in platte tekstbestanden. Om verbindingsproblemen te onderzoeken, opent u Logboekweergave ( eventvwr.msc ) en gaat u vervolgens naar:

  • Toepassings- en servicelogboeken > OpenSSH > Operationeel

Hier zie je evenementen zoals:

EventID: 4 sshd: Accepted password for username from 192.168. X.X port 12345 ssh2

Als u SSH-logs naar een bestand wilt schrijven voor eenvoudigere probleemoplossing, moet u de juiste instellingen inschakelen in sshd_config:

SyslogFacility LOCAL0 LogLevel INFO

Start vervolgens sshd opnieuw op, en de logbestanden zouden in de juiste map moeten verschijnen C:\ProgramData\ssh\logs\sshd.log. Houd er rekening mee dat dit wat extra configuratie vereist, maar het is de moeite waard als je problemen met hardnekkige verbindingen wilt oplossen of betere logbestanden wilt hebben.

Meestal komt het probleem neer op een niet-werkende service, een firewall die de verbinding blokkeert of een verkeerde configuratie sshd_config. Los die problemen op en SSH zou weer naar behoren moeten werken. Windows maakt het natuurlijk iets lastiger dan Linux, maar als je het eenmaal door hebt, is het prima te doen.

Samenvatting

Als alle bovenstaande stappen correct worden uitgevoerd, lossen de meeste verbindingsproblemen zich vanzelf op – of worden ze in ieder geval gemakkelijker op te sporen. Het is vreemd hoe vaak de firewall of het opstarten van de service over het hoofd wordt gezien, dus controleer die ook. Daarnaast lost het aanpassen van configuraties sshd_configvaak hardnekkige toegangsproblemen op.

Hopelijk scheelt dit iemand een paar uur. De rest komt meestal neer op het aanpassen van machtigingen, poorten of firewallregels. Vergeet niet dat het soms helpt om de computer opnieuw op te starten na het instellen van alles, om vastgelopen services of netwerkcaches te wissen.

Samenvatting

  • Zorg ervoor dat de OpenSSH-server is geïnstalleerd en ingeschakeld.
  • Stel de sshd-service in om automatisch te starten en controleer of deze actief is.
  • Controleer de regels van uw Windows Firewall voor inkomend verkeer op poort 22 (of uw aangepaste poort).
  • Bewerk sshd_configde instellingen om gebruikers, groepen en poorten aan te passen.
  • Gebruik de ingebouwde SSH-client van Windows of Putty om verbinding te maken en te testen.
  • Controleer de gebeurtenislogboeken als de verbindingsproblemen aanhouden.

Tot slot

Het hele proces kan wat omslachtig zijn, vooral als Windows besluit dingen te blokkeren die open zouden moeten staan, maar zodra het eenmaal werkt, wordt SSH-toegang veel eenvoudiger. Denk wel aan de beveiliging: laat de standaardregels niet openstaan, tenzij je weet wat je doet. Hopelijk helpt dit iemand om zijn SSH-server stabiel en functioneel te krijgen in Windows. Succes!