Het SSH-protocol (Secure Shell) is een netwerkprotocol voor het beheren van besturingssystemen op afstand via de opdrachtregel en wordt algemeen beschouwd als de standaard voor externe toegang tot *nix-machines. Het maakt veilige login naar een server, uitvoeren van opdrachten op afstand, bestandsbeheer (aanmaken, verwijderen, kopiëren, enz.) en meer mogelijk. De meeste cloud- en hostingproviders vereisen SSH om toegang tot hun diensten te krijgen. In dit artikel bespreken we hoe je bestanden via SSH kunt kopiëren op zowel Windows- als Linux-systemen.
SSH kan alle soorten gegevens (audio, video, applicatieprotocolgegevens) veilig verzenden via een versleuteld communicatiekanaal. In tegenstelling tot verouderde en onveilige protocollen zoals Telnet en rlogin zorgt SSH voor vertrouwelijkheid en authenticiteit van gegevens — essentieel voor communicatie via het internet.
Zo wordt een veilige verbinding tussen client en server tot stand gebracht:
TCP-verbinding: Standaard luistert de server op poort 22. Beide partijen delen een lijst van ondersteunde algoritmen (compressie, versleuteling, sleuteluitwisseling) en komen overeen welke worden gebruikt.
Authenticatie: Om identiteitsdiefstal te voorkomen, verifiëren beide partijen elkaar met behulp van asymmetrische versleuteling (publieke/private sleutels). Eerst wordt de server geverifieerd. Bij de eerste verbinding toont de client een waarschuwing met serverdetails. Vertrouwde serversleutels worden opgeslagen in /home/<username>/.ssh/known_hosts.
Sleutelgeneratie: Zodra de server is geverifieerd, genereren beide partijen een symmetrische sleutel om alle gegevens te versleutelen.
Gebruikersauthenticatie: Dit gebeurt met een wachtwoord of een publieke sleutel van de client, opgeslagen op de server in /home/<username>/.ssh/authorized_keys.
De populairste implementatie onder Linux is OpenSSH, dat standaard op de meeste distributies (Ubuntu, Debian, RHEL, enz.) is geïnstalleerd. Onder Windows worden clients zoals PuTTY of MobaXterm gebruikt. Sinds Windows 10 en Server 2019 zijn OpenSSH-tools ook native beschikbaar.
Twee belangrijke tools voor het kopiëren van bestanden via SSH in Linux zijn scp en sftp. Beide worden meegeleverd met OpenSSH.
SSH ondersteunt twee protocolversies: 1 en 2. OpenSSH ondersteunt beide, maar versie 1 wordt zelden gebruikt.
Om Tab-completion te gebruiken met scp, stel je publieke-sleutelauthenticatie in:
Genereer een sleutelpaar:
ssh-keygen
Voorbeeld uitvoer:
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Standaard worden je sleutels (id_rsa voor privé en id_rsa.pub voor publiek) opgeslagen in ~/.ssh/.
Kopieer de publieke sleutel naar de externe machine:
ssh-copy-id [username]@[ip-address]
Na het invoeren van het wachtwoord zie je een bericht dat bevestigt dat de sleutel is toegevoegd.
Voor kleine gegevensoverdrachten (bijv. configuratiebestanden) is scp ideaal.
Van lokaal naar remote kopiëren:
scp test.txt user@192.168.1.29:/home/user/
Meerdere bestanden kopiëren:
scp test1.txt test2.txt user@192.168.1.29:/home/user/
Van remote naar lokaal kopiëren:
scp user@192.168.1.29:/home/user/test.txt ~/
Mappen kopiëren:
scp -r testdir user@192.168.1.29:/home/user/
Van remote naar remote kopiëren:
scp gendo@192.168.1.25:/home/gendo/test.txt user@192.168.1.29:/home/user/
SFTP is een andere tool die bij OpenSSH wordt geleverd. Sinds OpenSSH 9.0 gebruikt scp standaard SFTP in plaats van het oudere SCP/RCP-protocol.
In tegenstelling tot klassiek FTP verzendt sftp gegevens versleuteld via een beveiligde tunnel. Er is geen aparte FTP-server nodig.
Voorbeeldgebruik:
sftp misato@192.168.1.29
sftp> ls
sftp> lcd testdir/
sftp> get test.txt
sftp> bye
Grafische bestandsbeheerders zoals Midnight Commander en Nautilus gebruiken ook sftp. In Nautilus verschijnt de externe server als een lokale map, bijvoorbeeld user@ip.

Op Windows gebruik je het opdrachtregelprogramma pscp van PuTTY om bestanden te kopiëren.
Kopiëren naar de server:
pscp C:\server\test.txt misato@192.168.1.29:/home/misato/
Kopiëren van de server:
pscp misato@192.168.1.29:/home/misato/test.txt C:\file.txt
Bestanden op de remote server weergeven:
pscp -ls user@192.168.1.29:/home/misato
Gebruik aanhalingstekens voor paden met spaties:
pscp "C:\dir\bad file name.txt" misato@192.168.1.29:/home/misato/
Hulp weergeven:
pscp
We hebben besproken hoe je bestanden veilig naar en van een server kopieert met het SSH-protocol. Als je met cloudservers werkt, is het begrijpen van SSH essentieel — het is de standaardmethode voor externe toegang tot *nix-machines en een belangrijk onderdeel van dagelijkse DevOps- en systeembeheerprocessen.