Om bestanden te downloaden en uploaden van/naar je Windows Server kun je gebruik maken van een FTPS- of SFTP-server. De belangrijkste verschillen tussen FTPS en SFTP in Windows Server komen neer op:
- FTPS: Maakt gebruik van IIS, gebruikt poort 21 + een passieve poortreeks en vereist een TLS/SSL-certificaat.
- SFTP: Gebruikt SSH op poort 22. Handig als je al SSH gebruikt of geen IIS wilt installeren.
Beide varianten versleutelen je dataverkeer; de keuze hangt vooral af van de eisen van je omgeving en je FTP-client. In deze handleiding zet je stap voor stap een veilige SFTP-bestandsserver op in Windows Server 2022 of nieuwer, zonder IIS. Voor FTPS, zie onze FTPS-handleiding voor Windows Server.
SFTP installeren in Windows Server (zonder IIS)
Stap 1
Verbind met je Windows Server via Remote Desktop, de VPS-console (VPS) of de OpenStack-console (OpenStack-instance).
Stap 2
Klik op de Windows Start-knop, type 'PowerShell' en klik op de optie 'Run as Administrator'.
Stap 3
Installeer de OpenSSH Server-feature, start de SSHD-service en stel het automatisch starten van de SSHD-service in. Het starten van de SSH-service is in deze stap al nodig om ervoor te zorgen dat een configuratiebestand wordt aangemaakt.
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
Set-Service -Name sshd -StartupType Automatic
Stap 4 - optioneel
Voer direct naar wens veiligheidswijzigingen door in de configuratie van je SSH-server. Open hiervoor Windows Explorer en navigeer naar C:\ProgramData\ssh. Klik vervolgens met de rechtermuisknop op sshd_config en selecteer ‘Open with…’. Selecteer tot slot een tekst-editor naar keuze, bijvoorbeeld Notepad.

Pas naar wens de opties in het geopende bestand aan en sla de wijzigingen op. Let wel dat je niet een bestandsextensie toevoegt bij het opslaan van het bestand: sshd_config heeft geen extensie en Notepad zal dit standaard proberen aan te passen naar sshd_config.txt.

Enkele veelgebruikte, aanbevolen opties zijn:
- Port: Automatische aanvallende bots zoeken naar SSH-servers op poort 22. Door in de regel #Port 22 te veranderen naar een ongebruikte port, bijvoorbeeld Port 45123 voorkom je een groot aantal aanvallen. Controleer eventueel in de Windows Firewall with Advanced Security welke poorten al in gebruik zijn.
- PermitRootLogin: Standaard staat deze optie op #PermitRootLogin prohibit-password (uitgecommentarieerd met de default optie). We raden echter aan root-toegang geheel uit te zetten door de regel te veranderen naar PermitRootLogin no
- PasswordAuthentication: yes staat authenticatie met je SSH-server via wachtwoorden toe, no verbiedt wachtwoordauthenticatie. Pas deze optie enkel aan wanneer je gebruik wil maken van SSH-keys (FileZilla accepteert deze bijvoorbeeld in het .ppk-formaat).
- AllowUsers: een lijst met gebruikers die via SFTP met je Windows Server mogen verbinden, bijvoorbeeld AllowUsers sftpuser yourname “yourdomain\domainuser”
Stap 5
Herstart via PowerShell de SSH-server om eventuele configuratiewijzigingen door te voeren:
Restart-Service sshd
Stap 6
Open vervolgens de SFTP/SSH-poort in de Windows Firewall. Indien je in stap 4 het SSH-poortnummer hebt aangepast, pas dan in het commando hieronder 22 aan naar het nieuwe poortnummer.
New-NetFirewallRule -DisplayName "OpenSSH Server (22/TCP)" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
Als de SSH-poort niet al in gebruik is en de regel correct is toegevoegd, ziet de output er ongeveer als volgt uit (let vooral op de regel ‘Status’):
Name : {d47b9d44-fdc7-4eda-a3fe-35a74c9fbd6f}
DisplayName : OpenSSH Server (45123/TCP)
Description :
DisplayGroup :
Group :
Enabled : True
Profile : Any
Platform : {}
Direction : Inbound
Action : Allow
EdgeTraversalPolicy : Block
LooseSourceMapping : False
LocalOnlyMapping : False
Owner :
PrimaryStatus : OK
Status : The rule was parsed successfully from the store. (65536)
EnforcementStatus : NotApplicable
PolicyStoreSource : PersistentStore
PolicyStoreSourceType : Local
Stap 7
Maak afhankelijk van je keuzes in stap 4 optioneel een SFTP-gebruiker en een SFTP-map aan en geef de SFTP-gebruiker NTFS-rechten tot de map zodat deze bestanden kan aanmaken, lezen, etc.
net user sftpuser * /add
mkdir C:\SFTP\sftpuser
icacls C:\SFTP\sftpuser /grant "sftpuser:(OI)(CI)(M)"
- Na het eerste commando wordt eerst automatisch gevraagd om een wachtwoord voor de nieuwe gebruiker (sftpuser) in te stellen.
- Voor Active Directory-omgevingen kun je eventueel ook het net user commando overslaan en een specifieke gebruiker toegang geven met /grant “domain\username:(OI)(CI)(M)”
Je SFTP-server is nu klaar voor gebruik! In de paragraaf hieronder laten we zien welke gegevens je nodig hebt om met je server te verbinden.
Met je SFTP-server verbinden
Gebruik de onderstaande gegevens om met je SFTP-server te verbinden. In de screenshot er onder zie je een voorbeeld in FileZilla.
- Protocol: SFTP - SSH File Transfer Protocol.
- Host: Het IP-adres van je SFTP-server of een (sub)domein dat ernaar verwijst.
- Port: Het poortnummer dat je in stap 4 van de vorige paragraaf hebt ingesteld, of 22 als je de standaardpoort gebruikt.
- Logon Type: ‘Normal’ als je een wachtwoord gebruikt en ‘Key file’ voor SSH-keys.
- User: Een gebruikersaccount op je Windows Server die toegang heeft tot je SFTP directory, bijvoorbeeld de in stap 7 aangemaakte gebruiker.
- Password: Het wachtwoord van de hierboven genoemde User.
In FileZilla ziet dit er als volgt uit onder ‘File’ > ‘Site Manager…’ > ‘New site’:

Hiermee zijn we aan het eind gekomen van onze handleiding over het opzetten van een SFTP-server in een Windows Server. Je kunt nu veilig je Windows Server gebruiken om bestanden van/naar te downloaden en uploaden.