## SSH-keys

## Stap 1. Maken van een SSH sleutelpaar

De eerste stap is het maken van een sleutelpaar op de cliëntcomputer (de computer waarmee je de ssh verbinding wil gaan maken)

    ssh-keygen

Standaard zullen recente versies van `ssh-keygen`een 3072-bits RSA-sleutelpaar (Windows 2048-bits) 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).

Wanneer je gebruik maakt van Windows als OS om grotere keys te genereren ga je als volgt te werk: `ssh-keygen -t rsa 4096`

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 ziet u het volgende bericht:

Het kopieren van de ssh-key welke je net gemaakt hebt met Windows gaat net iets anders. Hiervoor gebruik je Windows Powershell. Hiervoor gebruik je het volgende commando: `type C:\Users\[user]\.ssh\id_rsa.pub | ssh [user]@[host ip]'cat >> .ssh/authorized_keys'`

vervang [user] voor de gebruiker waardoor de key is gegenereerd

Vervang [user@ host ip voor de gegevens waarmee je inlogt eg. martijn@192.168.75.137]

## 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.