SFTP Gebruikers Workflow β Ubuntu/Linux Server + macOS/Windows Clients¶
Deze handleiding legt uit hoe je SFTP-gebruikers toevoegt, rechten instelt en configureert.
We behandelen de configuratie op een Ubuntu/Linux server, en de verbinding vanaf macOS en Windows (PowerShell/Git Bash).
Info
Alle voorbeelden gebruiken poort 22 expliciet, zodat je dit makkelijk kunt aanpassen als jouw server een andere poort gebruikt.
πΉ Wat is SFTP?¶
SFTP (SSH File Transfer Protocol) is een manier om veilig bestanden uit te wisselen via een SSH-verbinding.
Het werkt via dezelfde poort en sleutels als SSH, maar kan apart worden geconfigureerd zodat gebruikers: - alleen toegang hebben tot bestanden - geen toegang tot shell/commandoβs krijgen
Kies een distro¶
πΉ Gebruiker toevoegen¶
Op de server (Ubuntu/Linux) maak je een nieuwe gebruiker aan die alleen SFTP mag gebruiken.
Met adduser maak je eenvoudig een nieuwe gebruiker sftpuser. De optie --home geeft de locatie van de home directory aan, en --shell /usr/sbin/nologin zorgt dat deze gebruiker geen toegang tot bash of ssh-shell krijgt.
Alternatief kun je de meer "basis" variant useradd gebruiken. Daarbij moet je extra opties meegeven:
-m β maakt automatisch de home directory aan.
-d β specificeert waar de home directory moet komen.
-s β zet de shell op nologin, zodat de gebruiker alleen SFTP mag gebruiken.
Omdat useradd standaard geen wachtwoord instelt, moet je dit daarna nog doen met passwd:
πΉ Home map instellen¶
Stel de juiste eigenaar en rechten in op de home directory, zodat de nieuwe gebruiker hier bestanden kan opslaan en lezen
# Zorg dat de chroot-directory van root is
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
# Maak een uploadmap aan waar sftpuser bestanden mag plaatsen
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
πΉ configuratie voor sftpuser¶
Open het configuratiebestand:
Voeg onderin in de config bestand 1 van de regel hieronder klink op zo on de zien hoe je dit goed instelt:
sftpuser moet eigendom zijn van root en mag niet schrijfbaar zijn voor de gebruiker.
Zorg ervoor dat je sftpuser toevoegt aan de www-data groep, zodat hij bestanden in /var/www/ kan bewerken.
Om een bind-mount te maken, gaan we eerst een stap terug: Maak een www-map aan in de home-directory van sftpuser. Mount vervolgens de /var/www/-map naar deze nieuwe locatie zodat de inhoud gespiegeld wordt. Zorg er daarnaast voor dat sftpuser lid is van de www-data groep, zodat hij schrijfrechten heeft binnen de gemounte map.
# Bind mount zodat /var/www gespiegeld wordt in /home/sftpuser/www
sudo mount --bind /var/www /home/sftpuser/www
SSH-configuratie aanpassen:
Voeg onderaan toe:
login methode aanpassen:
voeg toe onderaan de Match user sftpuser, bepaal voor je zelf welk je wilt gebruiken. deze regels overschrijven de instellende regels voor ssh toegang dan voor alleen de sftpuser
πΉ Herstart de SSH-service¶
πΉ Verbinden via Windows (PowerShell / GUI)¶
In Windows 10/11 zit sftp standaard bij PowerShell.
Of via WinSCP / FileZilla (GUI):
- Protocol: SFTP
- Hostname:
192.168.1.50 - Gebruiker:
sftpuserofwebuser - Poort:
22(of aangepaste poort) - Authenticatie:
- Wachtwoord (als toegestaan in
sshd_config) - Of SSH sleutel β vaak
.ppkformaat vereist- Zet je OpenSSH-sleutel (
id_rsaofid_ed25519) om naar.ppkmet PuTTYgen
- Zet je OpenSSH-sleutel (
- Selecteer dit bestand bij "Sleutelbestand" in de Site Manager
πΉ loggen en debuggen¶
Logs vind je op de server via:
πΉ Gebruiker toevoegen¶
Maak een gebruiker aan voor SFTP-only toegang.
πΉ Gebruiker toevoegen¶
Zelfde werkwijze als CentOS.
πΉ Gebruiker toevoegen¶
Gebruik useradd om een gebruiker aan te maken met SFTP-only toegang.
πΉ Gebruiker toevoegen¶
Op Alpine Linux gebruik je adduser.
πΉ Gebruiker toevoegen¶
Op Windows (met OpenSSH-server geΓ―nstalleerd) maak je een nieuwe gebruiker aan via PowerShell:
Geef deze gebruiker beperkte toegang tot de SFTP-root via de OpenSSH configuratie (sshd_config).