SSH & SFTP Installatie¶
In deze handleiding leer je hoe je OpenSSH kunt installeren en gebruiken op een Linux-systeem.
We gebruiken hier Debian/Ubuntu als voorbeeld, maar de stappen voor RHEL/CentOS zijn vergelijkbaar.
Achtergrondinformatie
-
SSH (Secure Shell): ontwikkeld door Tatu Ylönen in 1995, nu onderhouden door het OpenSSH-project (onderdeel van OpenBSD).
Het biedt veilige, versleutelde toegang tot servers op afstand en is de standaard voor systeembeheer. -
SFTP (SSH File Transfer Protocol): uitgebracht als onderdeel van het IETF SSH2 protocol rond 2001.
Het maakt gebruik van dezelfde beveiligde verbinding als SSH en wordt vooral gebruikt om bestanden veilig te kopiëren tussen systemen.
SFTP inbegrepen
SFTP is geen aparte installatie.
Het is standaard onderdeel van OpenSSH, dus zodra je SSH installeert, heb je automatisch ook SFTP.
1. Controleren of SSH (en SFTP) al aanwezig zijn¶
Voorbeeld output:
2. Installatie¶
Voorbeeld output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ncurses-term openssh-sftp-server ssh-import-id
Suggested packages:
ssh-askpass molly-guard rssh
The following NEW packages will be installed:
ncurses-term openssh-server openssh-sftp-server ssh-import-id
0 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.
Need to get 600 kB of archives.
After this operation, 5,000 kB of additional disk space will be used.
Setting up openssh-server (1:8.9p1-3ubuntu0.3) ...
Processing triggers for man-db (2.10.2-1) ...
Processing triggers for systemd (249.11-0ubuntu3.6) ...
Voorbeeld output
Updating Subscription Management repositories.
Last metadata expiration check: 0:15:32 ago on Mon Jan 10 12:20:00 2023.
Dependencies resolved.
======================================================================
Package Arch Version Repository
======================================================================
Installing:
openssh-server x86_64 8.0p1-10.el8 baseos
Installing dependencies:
openssh x86_64 8.0p1-10.el8 baseos
openssh-clients x86_64 8.0p1-10.el8 baseos
Transaction Summary
======================================================================
Install 3 Packages
Installed:
openssh-8.0p1-10.el8.x86_64
openssh-clients-8.0p1-10.el8.x86_64
openssh-server-8.0p1-10.el8.x86_64
Complete!
3. SSH-Service beheren¶
Wanneer de OpenSSH-server is geïnstalleerd, moet de service geactiveerd en gestart worden zodat je verbindingen kunt accepteren. Hieronder zie je de belangrijkste commando’s en hun functie:
- Zorgt ervoor dat de SSH-service automatisch start bij het opstarten van het systeem.
Voorbeeld output systemctl enable ssh
- Start de SSH-service direct, zodat je meteen verbindingen kunt maken.
Voorbeeld output systemctl start ssh
- Controleert de huidige status van de SSH-service en toont of deze actief draait.
Voorbeeld output systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-01-10 12:34:56 UTC; 10s ago
Main PID: 1234 (sshd)
Tasks: 1 (limit: 1111)
Memory: 2.0M
CGroup: /system.slice/ssh.service
└─1234 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
4. Verbinden met SSH¶
Met SSH maak je een beveiligde shell-verbinding naar je server.
Het commando heeft de vorm:
Praktisch voorbeeld:
Handig om te weten
- Als je standaardpoort 22 gebruikt, hoef je de poort niet te vermelden.
- Gebruik je een andere poort (bijv. 2222), dan moet je dit toevoegen:
5. Verbinden met SFTP¶
SFTP is de Secure File Transfer Protocol.
Het werkt via dezelfde SSH-service, dus je hoeft geen aparte installatie te doen.
Praktisch voorbeeld:
Voorbeeld van een interactieve sessie
SCP alternatief
Voor éénmalige bestandsoverdracht is SCP vaak sneller:
6. Extra nuttige commando’s¶
Open SSH in de firewall met firewalld:
Controleer de configuratie voordat je herstart:
Tip
Als er geen output komt, betekent dat dat de configuratie geldig is.
Upload een bestand naar de server:
Download een bestand van de server:
Info
Voor grotere/multiple bestanden is rsync vaak efficiënter.
Logging en Debugging¶
Wanneer je problemen hebt met SSH of SFTP, kan logging je helpen om de oorzaak te achterhalen.
Voorbeeld output
Aug 25 10:22:41 server sshd[1234]: Accepted password for alice from 192.168.1.20 port 51562 ssh2
Aug 25 10:22:41 server sshd[1234]: pam_unix(sshd:session): session opened for user alice by (uid=0)
Aug 25 10:25:03 server sshd[1256]: Received disconnect from 192.168.1.20 port 51562:11: disconnected by user
Aug 25 10:25:03 server sshd[1256]: Disconnected from user alice 192.168.1.20 port 51562
Je kunt tijdelijk het debug-niveau verhogen door de SSH-daemon in debug-modus te starten:
-D→ niet in de achtergrond draaien-d/-dd/-ddd→ verschillende debug-niveaus (meerd= meer details)
Als je vanaf de client wilt debuggen:
Voorbeeld output
SFTP maakt gebruik van de SSH-service. Fouten verschijnen dus ook in de SSH-logs.
Voor extra debugging kan je op de client:
Configuratiebestanden¶
SSH en SFTP maken gebruik van een aantal belangrijke configuratiebestanden. Hieronder een overzicht:
-
/etc/ssh/sshd_config
Het belangrijkste configuratiebestand voor de SSH-daemon (server). Hier stel je zaken in zoals de poort (Port), toegestane authenticatiemethoden (PasswordAuthentication,PubkeyAuthentication), root-login (PermitRootLogin) en SFTP-instellingen. -
/etc/ssh/ssh_config
Het configuratiebestand voor de SSH-client. Dit bepaalt standaardopties voor alle uitgaande SSH-verbindingen, zoals de standaard gebruiker of host-specifieke instellingen. -
~/.ssh/config
Gebruikersspecifieke configuratie voor SSH-clients. Hier kun je shortcuts definiëren voor servers (bijvoorbeeld aliassen, standaard sleutels per host, enz.). -
/etc/ssh/moduli
Bevat cryptografische parameters (Diffie-Hellman groepen) die gebruikt worden voor sleuteluitwisseling. -
/var/log/auth.log(Debian/Ubuntu) of/var/log/secure(RHEL/CentOS)
Logbestanden waarin je kunt nakijken wie er verbinding maakt en of er inlogpogingen mislukken.
Handige check
Na wijzigingen in /etc/ssh/sshd_config altijd testen met:
SSH verwijderen¶
Ja, het is technisch mogelijk om OpenSSH te verwijderen, maar dit wordt sterk afgeraden.
Zeker als je server alleen via SSH beheerd wordt, kan dit ervoor zorgen dat je geen toegang meer hebt.
Verwijder SSH dus alleen als je fysieke toegang hebt tot de server of een alternatieve beheerinterface (bijv. IPMI, iDRAC, of de cloud-console van je provider).
Let op
Het verwijderen van SSH kan leiden tot permanente buitensluiting van je server.
Overweeg dit alleen in een testomgeving of wanneer je zeker weet dat er een alternatieve toegang beschikbaar is.
Hardening Tips¶
Aanbevelingen voor extra veiligheid
- Poort aanpassen in
/etc/ssh/sshd_config(bijv.Port 2222) - Alleen key-authenticatie toestaan (
PasswordAuthentication no) - Root-login blokkeren (
PermitRootLogin no) - Gebruik Fail2ban of firewall regels voor extra beveiliging
✅ Na installatie heb je zowel SSH als SFTP tot je beschikking!