## SSH-keys

## Stap 1. Maken van een SSH sleutelpaar

De eerste stap is het maken van een sleutelpaar op de clientcomputer (meestal je computer)

    ssh-keygen

Standaard zullen recente versies van `ssh-keygen`een 3072-bits RSA-sleutelpaar maken, dat voldoende veilig is voor de meeste gevallen (je kunt optioneel de `-b 4096`vlag doorgeven om een ​​grotere 4096-bits sleutel te maken).

Als je ervoor kiest om de sleutel op schijf te overschrijven, kun je niet meer verifiëren met de vorige sleutel. Wees heel voorzichtig bij het selecteren van ja, aangezien dit een destructief proces is dat niet ongedaan kan worden gemaakt.

Aangezien dit waarschijnlijk de eerste keer is dat je sleutels aanmaakt kies voor`y`

Hier kun je optioneel een veilige wachtwoordzin invoeren, wat sterk wordt aanbevolen. Een wachtwoordzin voegt een extra beveiligingslaag toe om te voorkomen dat onbevoegde gebruikers inloggen. Aangezien dit een testomgeving is gaan wij dit met `enter` doorheen.

Hierna zal er een output komen dat je sleutelpaar is aangemaakt.

## Stap 2. Kopiëren van de openbare sleutel naar je Ubuntu-server

De snelste manier om uw openbare sleutel naar de Ubuntu-host te kopiëren, is door een hulpprogramma met de naam `ssh-copy-id`. Vanwege zijn eenvoud wordt deze methode ten zeerste aanbevolen, indien beschikbaar.

De `ssh-copy-id`tool is standaard opgenomen in veel besturingssystemen, dus het kan zijn dat je hem beschikbaar hebt op je lokale systeem. Om deze methode te laten werken, moet u al op een wachtwoord gebaseerde SSH-toegang tot uw server hebben.

Om het hulpprogramma te gebruiken, specificeert u de externe host waarmee u verbinding wilt maken, en het gebruikersaccount waartoe u op wachtwoord gebaseerde SSH-toegang hebt. Dit is het account waarnaar uw openbare SSH-sleutel wordt gekopieerd.

De syntaxis is:

    ssh-copy-id username@remote_host

Goed kijken welk wachtwoord je in moet vullen, eerste voor de gebruiker student. Als je op de sleutel een wachtwoord hebt gezet, dan moet je die daarna invoeren.

Mogelijk zie je het volgende bericht:

## (stap2,5) kopieren van ssh-keys

Het hulpprogramma ss-copy-id is niet op alle systemen beschikbaar. U zult op een andere manier de zojuist gegenereerde sleutel moeten kopieren. We gaan hiervoor gebruik maken van Powershell, deze opent u als volgt:

1. klik op start
2. zoek naar Powershell
3. klik met de rechter muisknop op Windows Powershell
4. Selecteer de optie om Powershell uit te voeren al administrator

In Powershell gebruikt u het volgende commando

    type $env:USERPROFILE\.ssh\id_rsa.pub | ssh {IP-ADDRESS} "cat >> .ssh/authorized_keys"

Vervolgens kunt u een ssh verbinding maken naar de server

## Stap 3. SSH verbinding maken

Maak opnieuw verbinding met de gebruiker student om te zien dat er nu zonder wachtwoord verificatie wordt ingelogd.

De sleutel is naar de home directory van de gebruiker student gekopieërd. Deze staat in ~/.ssh/authorized_keys.

## Stap 4. Wachtwoordverificatie uitzetten op je Ubuntu-server

Als je in staat was om in te loggen op je account met SSH zonder wachtwoord, heb je met succes SSH-key-gebaseerde authenticatie geconfigureerd voor je account. Uw wachtwoordgebaseerde authenticatiemechanisme is echter nog steeds actief, wat betekent dat uw server nog steeds wordt blootgesteld aan brute-force-aanvallen.

Zodra u heeft bevestigd dat uw externe account beheerdersrechten heeft, logt u in op uw externe server met SSH-sleutels. Kan je gebruiker `sudo` opdrachten uitvoeren? Dan kun je wachtwoordverificatie uitzetten in het configuratiebestand van SSH.

ervolgens het configuratiebestand van de SSH-daemon:

    sudo nano /etc/ssh/sshd_config

Zoek in het bestand naar een richtlijn met de naam `PasswordAuthentication`. Deze regel kan worden becommentarieerd met een `#`aan het begin van de regel. Maak het commentaar op de regel ongedaan door de `#`, te verwijderen en de waarde in te stellen op `no`. Dit zal uw mogelijkheid om in te loggen via SSH met accountwachtwoorden uitschakelen.

Sla het bestand op en sluit het als u klaar bent door op te drukken `CTRL+X`, vervolgens `Y`om het opslaan van het bestand te bevestigen en ten slotte `ENTER`nano af te sluiten. Om deze wijzigingen daadwerkelijk te activeren, moeten we de `sshd`service opnieuw starten :

    sudo systemctl restart ssh

Open uit voorzorg een nieuw terminalvenster en test of de SSH-service correct werkt voordat u uw huidige sessie afsluit:

    ssh username@remote_host

Zodra u heeft gecontroleerd of uw SSH-service correct werkt, kunt u alle huidige serversessies veilig sluiten.