Winkelwagen

/ VPS-Infrastructuur

Alles over de zelfontwikkelde VPS-infrastructuur

Register now

/ Up to date

/ Nieuws

Lancering PerformanceVPS

Meer info
Hulp nodig?

    Sorry, we konden geen resultaten vinden voor jouw zoekopdracht.

    Hoe genereer en gebruik ik SSH-keys?

    Om te verbinden met een Linux-server via SSH, kun je gebruik maken van SSH-keys, ook bekend als SSH key-pair. Verbinden met SSH-keys is een zeer veilige manier om te verbinden met een VPS. Voor meer algemene informatie over SSH-keys, zie ons artikel 'Wat zijn SSH-keys?'

    In dit artikel laten wij zien hoe je SSH-keys genereert en ze vervolgens gebruikt.


    Een SSH-key genereren en gebruiken in Windows 10 of 11

     

    In Windows 10 en 11 heb je twee opties tot je beschikking om een SSH-key te genereren: het Windows Subsystem for Linux (WSL) en Putty-gen. Welke optie je gebruikt hangt ervan af hoe je SSH gebruikt: WSL of Putty.

    • WSL stelt je in staat om de command-line variant van een Linux-distro zoals Ubuntu lokaal op je Windows computer/laptop te gebruiken. Je kunt vervolgens via command-line verbinden met een remote Linux-server.
    • Met Putty kun je remote verbinden via SSH met een Linux-VPS. Voor meer informatie over Putty, zie onze handleiding 'wat is command-line / SSH?'

    De ervaring is bij beide bijna hetzelfde als via de command-line van een Linux-distro werken.


    SSH-keys genereren in WSL

    Heb je nog geen Windows Subsystem for Linux op je Windows 10 computer of laptop geïnstalleerd? Doorloop dan eerst deze installatiehandleiding van Microsoft en installeer bijvoorbeeld Ubuntu 22.04.

     

    Stap 1

    Start de Windows Subsystem for Linux (Windows Start-knop > zoek op de naam van de geïnstalleerde distro, bijvoorbeeld 'Ubuntu').

    windows start search ubuntu


     

    Stap 2

    Genereer een public- en private-key met het ssh-keygen commando:

    ssh-keygen -t ed25519
    Toelichting commando

    De bestanden worden standaard in de ~/.ssh directory geplaatst (voor ~ wordt automatisch de home-directory van de huidige gebruiker gebruikt, bijvoorbeeld /home/transip/).

    Als er al bestanden bestaan in de ~/.ssh directory worden die overschreven.

    ssh-keygen maakt een SSH key-pair aan.

    -t ed25519 geeft aan dat ed25519-encryptie gebruikt moet worden. Dit is momenteel de meest veilige optie.

    Optioneel: Met de syntax -i /voorbeeld/directory/id_ed25519 kun je een andere directory opgeven waar de keys geplaatst worden. Let wel dat je dan ook met het ssh-commando deze toevoeging gebruikt om de locatie van je key op te geven.

    Optioneel: Je kunt de directory waar je keys in worden opgeslagen aanpassen met de syntax -f /andere/map/id_ed25519 Pas /andere/map/ aan naar de gewenste locatie, maar verander niet de bestandsnaam id_ed25519).

    Tijdens het genereren van de SSH key-pair krijg je output te zien die er ongeveer als volgt uitziet:

    Generating public/private ed25519 key pair.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/transip/.ssh/id_ed25519.
    Your public key has been saved in /home/transip/.ssh/id_ed25519.pub.
    The key fingerprint is:
    SHA256:1xCxkwjQLjz9CsL98GoTVmdmxO40zQqa5uxlE18zGcs transip@LAPTOP-DHLQLNU
    The key's randomart image is:
    +--[ED25519 256]--+
    |                 |
    |.                |
    |o     o .        |
    | + . = *         |
    |o + + B S        |
    |.o o X oo        |
    | oX=B Oo..       |
    |+.E+.+.*..       |
    |+*+o++o +o.      |
    +----[SHA256]-----+
    Toelichting output
    • Enter passphrase (empty for no passphrase): Hiermee geef je een wachtwoord op voor je private key. Zonder dit wachtwoord kan de private key niet geopend worden. We raden om veiligheidsredenen aan een passphrase in te stellen.
       
    • Your identification has been saved in ...: Het bestand waar je private key in is opgenomen.
       
    • Your public key has been saved in ...: Het bestand waar je public key in is opgenomen.
       
    • The key fingerprint is: een verkorte versie van de public key. Hiermee kan snel gecontroleerd worden of een server een public key heeft die matched met jouw key.
       
    • The key's randomart image is: een randomart image kan gebruikt worden zodat mensen sneller kunnen zien of een public key op een remote server overeenkomt met je gegenereerde key; het is eenvoudiger verschillen in een afbeelding te zien dan in een lange reeks tekst.

    Je key-pair is nu gegenereerd. Om er gebruik van te kunnen maken, kopieer je de public key naar de server waar je via SSH mee wil verbinden. Deze procedure leggen we in deze paragraaf uit en werkt hetzelfde voor WSL, MacOS en Linux.


    Een SSH-key genereren en gebruiken met Putty

     

    Putty komt automatisch met een programma genaamd Puttygen. Hiermee kun je via de onderstaande stappen SSH-keys genereren en gebruiken om met je VPS te verbinden.

     

    Stap 1

    Klik op de Windows Start-knop en zoek op 'Puttygen'.

    windows start puttygen


     

    Stap 2

     

    Je kunt verschillende type keys genereren en bent vrij het aantal bits aan te passen. We raden om veiligheidsredenen aan een ed25519-key te genereren met een bit-lengte van 4096.

    Klik op 'Generate' wanneer je dit hebt ingesteld en beweeg daarna je muis over het grijze vak zoals aangegeven onder 'Key' in het voorbeeld hieronder.

    puttygen generate key


     

    Stap 3

    Wanneer de keys gegenereerd zijn, krijg je je public key plus enkele aanvullende opties te zien zoals in het voorbeeld hieronder.

    • Stel een passphrase in: een passphrase versleuteld je private key en beveiligd die met een wachtwoord.
      Stel dat een hacker je private key weet te bemachtigen, dan zal die zonder de passphrase daar niets mee kunnen.
       
    • Sla de private-key op via 'Save private key'.
       
    • Kopieer de public key (selecteer ssh-ed25519 door met de muis te klikken en sleepen en met ctrl + c te kopieëren), plak deze bijvoorbeeld in Notepad (ctrl + v) en sla het bestand op met de naam id_ed25519.pub.
      De reden hiervoor is dat de optie 'Save public key' een iets ander formaat hanteert dat niet direct werkt wanneer je die gebruikt om jezelf te authenticeren.

    puttygen-public-key

    Sluit tot slot Puttygen af en open Putty.


     

    Stap 4

    Geef in Putty de Host Name of het IP-adres van je VPS op en je gebruikte SSH-poort (of laad een opgeslagen sessie) en klik daarna op 'Connection' > 'SSH' > 'Auth'.

    putty host name connection


     

    Stap 5

    Klik op 'Browse' en selecteer je private key in de map waar je die in stap 3 hebt opgeslagen.

    putty private key

    Optioneel - username

    Om automatisch je gebruikersnaam in te vullen, klik je in Putty op 'Data' onder 'Connection' en geef je onder 'Auto-login username' de gebruikersnaam van je VPS op.

    putty auto login username

    Optioneel - Sessie opslaan

    Klik op 'Session' > geef je sessie een naam onder 'Saved Sessions > klik op 'Save' om de instellingen op te slaan. Je hoeft dan in het vervolg alleen nog de opgeslagen sessie te selecteren en op 'Load' te klikken om direct te verbinden met je VPS.

    putty save session


     

    Je hebt nu een private key aangemaakt met Puttygen en deze aan een sessie gekoppeld in Putty. Om er gebruik van te maken, moet de public key aan je VPS toegevoegd worden. Volg hiervoor de stappen onder 'Een public-key rechstreeks toevoegen op een VPS'.


    Een SSH key genereren in MacOS / Linux

     

    Stap 1

    Start een terminal.


     

    Stap 2

    Genereer een public- en private-key met het ssh-keygen commando:

    ssh-keygen -t ed25519
    Toelichting commando

    De bestanden worden standaard in de ~/.ssh directory geplaatst (voor ~ wordt automatisch de home-directory van de huidige gebruiker gebruikt, bijvoorbeeld /home/transip/).

    Als er al bestanden bestaan in de ~/.ssh directory worden die overschreven.

    ssh-keygen maakt een SSH key-pair aan.

    -t ed25519 geeft aan dat ed25519-encryptie gebruikt moet worden. Dit is momenteel de meest veilige optie.

    Optioneel: Met de syntax -i /voorbeeld/directory/id_ed25519 kun je een andere directory opgeven waar de keys geplaatst worden. Let wel dat je dan ook met het ssh-commando deze toevoeging gebruikt om de locatie van je key op te geven.

    Optioneel: Je kunt de directory waar je keys in worden opgeslagen aanpassen met de syntax -f /andere/map/id_ed25519. Pas /andere/map/ aan naar de gewenste locatie, maar verander niet de bestandsnaam id_ed25519).

    Tijdens het genereren van de SSH key-pair krijg je output te zien die er ongeveer als volgt uitziet:

    Generating public/private ed25519 key pair.
    Enter passphrase (empty for no passphrase):
    Enter same passphrase again:
    Your identification has been saved in /home/transip/.ssh/id_ed25519.
    Your public key has been saved in /home/transip/.ssh/id_ed25519.pub.
    The key fingerprint is:
    SHA256:1xCxkwjQLjz9CsL98GoTVmdmxO40zQqa5uxlE18zGcs transip@LAPTOP-DHLQLNU
    The key's randomart image is:
    +--[ED25519 256]--+
    |                 |
    |.                |
    |o     o .        |
    | + . = *         |
    |o + + B S        |
    |.o o X oo        |
    | oX=B Oo..       |
    |+.E+.+.*..       |
    |+*+o++o +o.      |
    +----[SHA256]-----+
    Toelichting output
    • Enter passphrase (empty for no passphrase): Hiermee geef je een wachtwoord op voor je private key. Zonder dit wachtwoord kan de private key niet geopend worden. We raden om veiligheidsredenen aan een passphrase in te stellen.
       
    • Your identification has been saved in ...: Het bestand waar je private key in is opgenomen.
       
    • Your public key has been saved in ...: Het bestand waar je public key in is opgenomen.
       
    • The key fingerprint is: een verkorte versie van de public key. Hiermee kan snel gecontroleerd worden of een server een public key heeft die matched met jouw key.
       
    • The key's randomart image is: een randomart image kan gebruikt worden zodat mensen sneller kunnen zien of een public key op een remote server overeenkomt met je gegenereerde key; het is eenvoudiger verschillen in een afbeelding te zien dan in een lange reeks tekst.

    Je key-pair is nu gegenereerd. Om er gebruik van te kunnen maken, kopieer je de public key naar de server waar je via SSH mee wil verbinden. Deze procedure leggen we in de volgende paragraaf uit en werkt hetzelfde voor WSL, MacOS en Linux.


    Een public SSH-key toevoegen aan je VPS

    Na het genereren van een SSH key-pair, kopieer je je public key naar je VPS. Wanneer je daarna via SSH verbindt met je server, wordt automatisch gecontroleerd of de public key op je VPS hoort bij de private key op je computer. Zo ja, dan wordt de verbinding tot stand gebracht zonder dat een wachtwoord nodig is. Het toevoegen van de public-key werkt hetzelfde voor WSL, MacOS en Linux.

    Er zijn twee opties om de public-key aan je VPS toe te voegen:

    Een public-key toevoegen via ssh-copy-id

     

    Stap 1 

    Als je op je Linux-server nog niet eerder een public-key hebt toegevoegd, bestaat het bestand en de map waar de public keys in worden opgeslagen doorgaans nog niet en moet je die handmatig aanmaken. Verbind in dat geval eerst met je server via SSH met het commando:

    ssh user@123.123.123.123
    • Vervang user door de naam van het de gebruiker waarmee je via SSH wil verbinden. Deze gebruiker moet op je server bestaan.
    • Vervang 123.123.123.123 door het IP-adres van je VPS.
    • Gebruik optioneel de toevoeging -p 1234 (ssh -p 1234 user@123.123.123.123) om een andere SSH-poort op te geven. Meer informatie over het veranderen van je SSH-poort vind je hier.

     

    Stap 2

    Gebruik het volgende commando om de ~/.ssh map aan te maken als die nog niet bestaat, en daarin het bestand authorized_keys toe te voegen.

    mkdir ~/.ssh && touch ~/.ssh/authorized_keys

    De rechten tot de .ssh folder en het authorized_keys-bestand staan standaard verkeerd ingesteld wanneer je ze handmatig aanmaakt. De .ssh folder mag enkel lees-, schrijf- en uitvoer-rechten hebben en het authorized_keys-bestand lees- en schrijfrechten. Je kunt dit aanpassen via het volgende commando:

    chmod 700 ~/.ssh/
    chmod 600 ~/.ssh/authorized_keys

    Sluit de SSH-verbinding naar je VPS met het commando:

    exit

     

    Stap 3

    Kopieer de public key van je computer naar het authorized_keys-bestand op je VPS met het ssh-copy-id commando.

    Vervang in het voorbeeld hieronder user door de gebruikersnaam van je VPS en 123.123.123.123 door het IP-adres van je VPS.

    sudo ssh-copy-id user@123.123.123.123
    

    Optioneel kun je een andere SSH-poort opgeven met de toevoeging -p 1234. Vervang in dat geval 1234 door je SSH-poortnummer.

    De output zal er als volgt uit zien (type yes als om bevestiging wordt gevraagd):

    ssh key added

    Krijg je een foutmelding 'ERROR: no identities found'? Deze melding wordt doorgaans veroorzaakt doordat de locatie van het bestand id_rsa.pub niet ~/.ssh/id_rsa.pub is. ~ is hier de home directory van de gebruiker, bijvoorbeeld /home/transip/.ssh/id_rsa.pub. Deze melding kan bijvoorbeeld ontstaan je als de ene gebruiker de keys aanmaakt (bijv als root) en daarna probeert als een andere gebruiker (bijv je eigen naam) die key over te zetten.

    Controleer dan dat je inderdaad je key genereert op de computer waar vandaan je wil verbinden, waar op die computer id_rsa.pub zich bevindt, en specificeer de locatie met de toevoeging -i. Enkele voorbeelden zijn:

    sudo ssh-copy-id -i ~/.ssh/id_rsa.pub user@123.123.123.123
    sudo ssh-copy-id -i /etc/keys/id_rsa.pub user@123.123.123.123
    sudo ssh-copy-id -i /home/root/id_rsa.pub user@123.123.123.123 

     

    Stap 4

    Aan het eind van de output in stap 3 krijg je te zien hoe je gebruik maakt van je SSH-keys, namelijk met hetzelfde commando als in stap 1:

    ssh user@123.123.123.123

    Optioneel specificeer je opnieuw de SSH-poort met de toevoeging -p 1234. Vervang in dat geval 1234 door het SSH-poortnummer van je VPS.


     

    Stap 5

    SSH-keys hebben als hoofddoel het beveiligen van je SSH-verbinding. Als je SSH-keys gebruikt, is het verstandig om authenticatie via wachtwoorden (i.e. zonder SSH-key) niet langer toe te staan. Open hiervoor je SSH-configuratie:

    sudo nano /etc/ssh/sshd_config

     

    Stap 6

    Pas de waarde van PasswordAuthentication aan naar 'No', oftewel:

    PasswordAuthentication no

    Sla de wijzigingen vervolgens op en sluit het bestand (ctrl + > > enter).


     

    Stap 7

    Herstart tot slot de SSH-server om de wijzigingen te verwerken:

    sudo systemctl restart sshd

    Een public-key rechtstreeks toevoegen op een VPS

     

    Stap 1 

    Verbind met je server via SSH.

    • Om te verbinden via SSH met Putty, zie deze handleiding.
       
    • Voor WSL, MacOS en Linux (via een terminal) gebruik je het commando:
      ssh user@123.123.123.123
      • Vervang user door de naam van het de gebruiker waarmee je via SSH wil verbinden. Deze gebruiker moet op je server bestaan.
      • Vervang 123.123.123.123 door het IP-adres van je VPS.
      • Gebruik optioneel de toevoeging -p 1234 (ssh -p 1234 user@123.123.123.123) om een andere SSH-poort op te geven. Meer informatie over het veranderen van je SSH-poort vind je hier.

     

    Stap 2

    Als je op je Linux-server nog niet eerder een public-key hebt toegevoegd, bestaat het bestand waar de public keys in worden opgeslagen doorgaans nog niet.

    Gebruik het volgende commando om de ~/.ssh map aan te maken als die nog niet bestaat, en daarin het bestand authorized_keys toe te voegen.

    mkdir ~/.ssh/ && touch ~/.ssh/authorized_keys

     

    Stap 3

    Eerder in deze handleiding heb je op je computer/laptop een public key gegenereerd. Open de public key (het bestand dat je public key bevat heet standaard id_ed25519.pub) met een teksteditor en kopieer deze. In Windows kun je hiervoor notepad gebruiken, of in MacOS / Linux het programma 'Texteditor'.


     

    Stap 4

    Open het bestand authorized_keys, bijvoorbeeld met:

    nano ~/.ssh/authorized_keys
    

     

    Stap 5

    Plak je public key uit stap 3 in het bestand door met de rechter muisknop te klikken. Het resultaat ziet er ongeveer als volgt uit:

    ssh-ed25519 AAAAC3NzaC1lZBI1NTE5AAAAIT5Sem9ensPAP1BMO32bXcWtl1gt0ZedNz/cpcTr3R+D ed25519-key-20210217

    Sla hierna de wijzigingen op en sluit het bestand (ctrl + > > enter).


     

    Stap 6

    De rechten tot de .ssh folder en het authorized_keys-bestand staan standaard verkeerd ingesteld. De .ssh folder mag enkel lees-, schrijf- en uitvoer-rechten hebben en het authorized_keys-bestand lees- en schrijfrechten. Je kunt dit aanpassen via het volgende commando:

    chmod 700 ~/.ssh/
    chmod 600 ~/.ssh/authorized_keys

     

    Stap 7

    SSH-keys hebben als hoofddoel het beveiligen van je SSH-verbinding. Als je SSH-keys gebruikt, is het verstandig om authenticatie via wachtwoorden (i.e. zonder SSH-key) niet langer toe te staan. Open hiervoor je SSH-configuratie:

    sudo nano /etc/ssh/sshd_config

     

    Stap 8

    Pas de waarde van PasswordAuthentication aan naar 'No', oftewel:

    PasswordAuthentication no

    Sla de wijzigingen vervolgens op en sluit het bestand (ctrl + > > enter).


     

    Stap 9

    Herstart tot slot de SSH-server om de wijzigingen te verwerken:

    sudo systemctl restart sshd

    Een public-key gebruiken bij het bestellen van een VPS

     

    Stap 1

    Als je ingelogd bent in je TransIP-account, krijg je tijdens het bestelproces automatisch de SSH-installatie optie te zien. Heb je nog geen SSH-key toegevoegd in je TransIP-account? Ga dan direct naar stap 3.

    ssh keys

    Ben je niet ingelogd in je TransIP-account? Log dan eerst in, of klik op 'Kies een andere installatiemethode'.

    fast installs wachtwoord

    Klik vervolgens op 'Installeer via SSH-keys'.

    vps fast installs kies methode


     

    Stap 2

    Heb je al eerder een SSH-key toegevoegd? Vink dan de gewenste key(s) aan en klik op 'Ga verder'. Het bestelproces loopt dan verder en na oplevering van je VPS, kun je direct verbinden met je VPS via SSH met gebruik van je SSH-key.

    ssh keys


    Stap 3

    Geef de inhoud van je public key op en een beschrijving (bijvoorbeeld de naam van je computer) en klik op 'Key toevoegen'.

    fast installs new ssh key


     

    Daarmee zijn we aan het eind van deze handleiding gekomen. Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

    Kom je er niet uit?

    Ontvang persoonlijke hulp van onze supporters

    Neem contact op