Skip to content

SSH

Wat is SSH?

SSH, of Secure Shell, is een netwerkprotocol dat gebruikers toelaat om op een veilige manier verbinding te maken met een computer over een onbeveiligd netwerk. Het heeft verschillende toepassingen:

  • Systeembeheerders gebruiken het vaak om op afstand servers te beheren.
  • Ontwikkelaars gebruiken het om code te deployen op remote servers of om verbinding te maken met versiebeheersystemen zoals Git.
  • Gewone gebruikers kunnen het gebruiken om veilig in te loggen op een andere computer, bestanden over te dragen, of zelfs om veilig te internetten door een SSH-tunnel op te zetten.

Hoe werkt SSH?

SSH maakt gebruik van cryptografie om te verzekeren dat alle communicatie tussen de client en de server versleuteld is. Dit betekent dat zelfs als iemand het netwerkverkeer zou onderscheppen, ze niet in staat zouden zijn om de gegevens te lezen.

Hier is een vereenvoudigde uitleg van hoe een SSH-verbinding tot stand komt:

  1. De client (jouw computer) initieert een verbinding met de SSH-server.
  2. De server stuurt zijn publieke sleutel naar de client.
  3. De client genereert een sessie sleutel, versleutelt deze met de publieke sleutel van de server en stuurt deze terug.
  4. De server ontsleutelt de sessie sleutel met zijn private sleutel.
  5. Vanaf nu gebruiken de client en server de sessie sleutel om alle verdere communicatie te versleutelen.

Test

Hoe genereer je een key-pair?

Om SSH te gebruiken, heb je een key-pair nodig - een publieke sleutel en een private sleutel. De publieke sleutel plaats je op de servers waar je toegang toe wilt. Dit is nodig zodat de server jouw computer kan herkennen. De private sleutel bewaar je veilig op je eigen computer. Deze gebruik je om je te authenticeren bij de server.

Op Linux of macOS

Om een key-pair te genereren op een Linux of macOS systeem, open je een terminal en typ je:

ssh-keygen -t rsa -b 4096

Dit zal een nieuwe RSA key-pair genereren met een sleutellengte van 4096 bits. Je zult gevraagd worden waar je de sleutels wilt opslaan (de standaardlocatie is meestal goed) en om een wachtwoord in te stellen (dit is optioneel maar aanbevolen).

Op Windows

Op Windows heb je twee opties om SSH-sleutels te genereren:

PuTTYgen

PuTTYgen is een grafisch hulpprogramma dat deel uitmaakt van PuTTY, een populaire SSH-client voor Windows. Doorloop volgende stappen om een key-pair aan te maken.

  1. Open PuTTYgen
  2. Klik op "Generate" en beweeg je muis willekeurig over het lege gebied om willekeurigheid te genereren
  3. Eenmaal de sleutel gegenereerd is, kan je een passphrase instellen (optioneel) en de sleutels opslaan

OpenSSH

Vanaf Windows 10 is OpenSSH ingebouwd in Windows. Je kan met OpenSSH als volgt een key-pair aanmaken:

  1. Open PowerShell of Windows Terminal
  2. Typ ssh-keygen -t rsa -b 4096
  3. Volg de prompts om de locatie en passphrase voor je sleutels in te stellen

Hoe werk je op een remote server met SSH?

Zodra je een key-pair hebt gegenereerd, moet je de publieke sleutel op de server plaatsen. Dit doe je meestal door de inhoud van je id_rsa.pub bestand (of id_ed25519.pub als je een Ed25519 sleutel hebt gegenereerd) toe te voegen aan een speciaal bestand op de server genaamd ~/.ssh/authorized_keys.1

Als dit in orde is, kan je verbinding maken met de server door het volgende commando te typen:

ssh gebruikersnaam@servernaam

Vervang "gebruikersnaam" door je gebruikersnaam op de server en "servernaam" door het IP-adres of de domeinnaam van de server.

Als je voor het eerst verbinding maakt met een server, zal SSH je vragen om de vingerafdruk van de server te verifiëren. Dit is een veiligheidsmaatregel om er zeker van te zijn dat je verbinding maakt met de juiste server.

SSH is een krachtig hulpmiddel dat een veilige en efficiënte manier biedt om op afstand te werken met computers. Of je nu een systeembeheerder bent die servers beheert, een ontwikkelaar die code deployt, of gewoon iemand die veilig wil inloggen op een andere computer, SSH is een essentiële vaardigheid om onder de knie te krijgen.


  1. Wil je niet verbinden met een remote server, maar met een dienst zoals GitHub, dan is er meestal een locatie in de settings waar je je keys kan beheren.