OS & Linux-track Les 8 van 8

🔑 SSH: verbinden met een server

Een veilige tunnel naar elke Linux-server — en de brug naar GitHub en deployment.

⏱ 25 min6 stappen Les 5 en Git-track aanbevolen
Stap 1 / 6

Wat is SSH?

SSH staat voor Secure Shell. Het is een protocol voor een versleutelde verbinding met een server — alsof je met de terminal van de server werkt, maar dan via het internet.

🚇 Metafoor: een veilige tunnel

Stel je voor: je wil naar een gebouw waar niemand je zomaar in mag. SSH is een privé-tunnel die rechtstreeks van jouw computer naar die server loopt — niemand anders kan meekijken.

💻
Jouw computer
⟶⟶⟶
🔒 versleuteld
🖥️
Server
Wachtwoord-login
  • 🔴 Minder veilig (brute-force-aanvallen)
  • 🔴 Elke keer wachtwoord typen
  • 🟡 Eenvoudig te beginnen
SSH-key login (aanbevolen)
  • 🟢 Veel veiliger — cryptografisch
  • 🟢 Geen wachtwoord typen
  • 🟢 Vereist door GitHub, meeste servers
💼 Wanneer gebruik jij SSH?
  • • Inloggen op je stage-server om code te deployen
  • • Push/pull naar GitHub zonder wachtwoord
  • • Bestanden overzetten met scp of rsync
Stap 2 / 6

SSH-keys: publiek en privé

SSH-keys werken altijd in paren: een privésleutel die bij jou blijft, en een publieke sleutel die je op de server zet.

🔑
Privésleutel
~/.ssh/id_ed25519
  • • Staat op jouw computer
  • • Nooit met iemand delen!
  • • Zoals een huissleutel
🔓
Publieke sleutel
~/.ssh/id_ed25519.pub
  • • Zet je op de server
  • • Mag je overal delen
  • • Zoals het slot op je deur
ssh-keygen — sleutelpaar genereren
ssh-keygen -t ed25519 -C "jouw@email.com"
# -t ed25519 = modern algoritme (aanbevolen)
# -C = commentaar (label) — bijv. je e-mail
Generating public/private ed25519 key pair.
Enter file in which to save the key (~/.ssh/id_ed25519):
[Enter — standaard locatie gebruiken]
Enter passphrase (empty for no passphrase):
[optioneel: extra beveiliging]
Your identification has been saved in ~/.ssh/id_ed25519
Your public key has been saved in ~/.ssh/id_ed25519.pub
Terminal
Probeer: ssh-keygen -t ed25519 -C "test@test.com", cat ~/.ssh/id_ed25519.pub, ls ~/.ssh
student@linux:~$
Stap 3 / 6

Inloggen op een server

ssh-copy-id — publieke sleutel op server zetten

Eenmalig: kopieert jouw publieke sleutel naar de server. Daarna kun je inloggen zonder wachtwoord.

ssh-copy-id deploy@192.168.1.100
Number of key(s) added: 1
Now try logging into the machine: ssh deploy@192.168.1.100
ssh gebruiker@server — inloggen
ssh deploy@192.168.1.100
Welcome to Ubuntu 22.04.3 LTS
deploy@server:~$
# Je bent nu op de server!
ssh -p 2222 deploy@mijnserver.nl
-p = andere poort (standaard is 22)
exit
Terug naar jouw eigen computer
Terminal
Probeer: ssh deploy@server.example.com, ssh-copy-id deploy@server.example.com
student@linux:~$
Stap 4 / 6

Bestanden overzetten: scp en rsync

Soms wil je bestanden kopiëren van of naar een server zonder te inloggen.

scp — secure copy
scp bestand.txt deploy@server:/var/www/
Upload van jouw computer naar server
scp deploy@server:/var/log/error.log .
Download van server naar huidige map
scp -r mapje/ deploy@server:/var/www/
-r = recursief (complete map)
rsync — slim synchroniseren

rsync stuurt alleen de veranderingen — ideaal voor grote mappen.

rsync -avz project/ deploy@server:/var/www/project/
-a = archive, -v = verbose, -z = comprimeer
rsync -avz --delete project/ deploy@server:/var/www/project/
--delete verwijdert bestanden die lokaal weg zijn
💡 scp vs rsync

scp is simpel en snel voor losse bestanden. rsync is slimmer: het vergelijkt bron en doel, en stuurt alleen wat veranderd is. Voor grote projecten gebruik je rsync — dan duurt een update seconden in plaats van minuten.

Stap 5 / 6

🔗 Brug naar Git: dezelfde sleutel voor GitHub

De SSH-sleutel die je zojuist leerde aanmaken, gebruik je ook voor GitHub. In plaats van elke keer je wachtwoord in te typen bij git push, logt GitHub je in via je SSH-key.

Stap 1: je publieke sleutel kopiëren
cat ~/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKx... jouw@email.com
# Selecteer en kopieer deze hele regel
Stap 2: toevoegen aan GitHub
  1. 1. Ga naar github.com → Settings → SSH and GPG keys
  2. 2. Klik "New SSH key"
  3. 3. Plak de publieke sleutel in het veld
  4. 4. Sla op
Stap 3: verbinding testen
ssh -T git@github.com
Hi gebruikersnaam! You've successfully authenticated.
Stap 4: repository klonen via SSH
git clone git@github.com:gebruiker/repo.git
# Niet de HTTPS-link — de SSH-link!
🔗 Verband met de Git-track

In de Git-track leerde je over GitHub en repositories. SSH-authenticatie maakt de verbinding veiliger en sneller — je hoeft nooit meer een wachtwoord in te typen bij git push of git pull.

→ Herhaal de GitHub-les in de Git-track
Stap 6 / 6

Samenvatting & kennischeck

SSH = veilige versleutelde verbinding met een server
Privésleutel blijft bij jou, publieke sleutel op de server
ssh-keygen -t ed25519 genereert een modern sleutelpaar
ssh-copy-id zet je publieke sleutel op de server
scp voor losse bestanden, rsync voor mappen
Dezelfde SSH-key gebruik je voor GitHub-authenticatie
🎉 OS & Linux-track voltooid!

Je kunt nu navigeren in de Linux-terminal, bestanden en permissies beheren, services starten en stoppen, logs lezen en via SSH verbinden met servers. Dit zijn de fundamenten die je nodig hebt voor alles wat volgt.

➡️ Volgende aanbevolen track

SQL & Databases — nu je Linux kent, is databases beheren op een server begrijpelijker.

→ Begin de SQL-track
🚀 Later: Deployment-track

Na PHP en Symfony: alles wat je hier leerde, gebruik je bij het deployen van een Symfony-app op een echte server.

Komt later beschikbaar