PKI – Zonder wachtwoord veiliger inloggen

Ben je het ook moe om iedere keer een gebruikersnaam én wachtwoord in te tikken als je op je Raspberry Pi via SSH inlogt? Ik heb hier een oplossing voor gevonden, welke ook nog eens beveiligingsvoordelen met zich mee brengt.

We maken een public SSH key en een private SSH key aan om de Raspberry Pi te benaderen. De public SSH key wordt op de Raspberry Pi (Server Side) opgeslagen en de privé SSH key wordt door PuTTy (Client Side) gebruikt voor de authenticatie bij het inloggen.


PuTTY Generator – Aanmaken van de public en private key
Als je PuTTY installeert wordt er op je PC een ook ander programma geïnstalleerd: PuTTy Key Generator. Dit programma gebruiken we om de private & public SSH keys te genereren. Start PuTTY Key Generator op en klik op Generate¹.
Je moet nu met je muis bewegen onder de groene balk², van links naar rechts, van boven naar beneden. Gewoon kriskras dus! Nadat je de muis voldoende bewogen hebt zie je dat de balk helemaal groen is en is de public SSH key aangemaakt³.

SSH Key – Server Side
Log nu met PuTTY (gebruiker = pi) in op je Raspberry Pi en voer onderstaande commando’s uit:

sudo mkdir .ssh/
sudo nano .ssh/authorized_keys

Er wordt nu een nieuw, leeg bestand aangemaakt in de nano editor. Kopieer in PuTTY Key Generator de public key (beginnend met “ssh’) en plak deze in de nano editor door middel van de rechtermuisknop. Sla het bestand op door op Ctrl+X te drukken, gevolgd door Y en Enter.

Geef vervolgens onderstaande commando’s in:

sudo chmod 700 ~/.ssh
sudo chmod 600 ~/.ssh/authorized_keys
sudo chown $USER:$USER ~/.ssh -R
sudo nano /etc/ssh/sshd_config

Zoek in het bestand “sshd_config” de regel “AuthorizedKeysFile” en haal het #-teken aan het begin van de regel weg. Sla het bestand op door op Ctrl+X te drukken, gevolgd door Y en Enter.

Herstart de Raspberry Pi:

sudo reboot


SSH Key – Client Side

PuTTY Key Generator
• Ga terug naar PuTTY Key Generator en klik op Save private key⁴.
• Je krijgt de vraag of je de private key wilt opslaan zonder een (extra) wachtwoord. Beantwoord deze vraag met Ja.
• Sla de private key op een locatie op je PC op.
• Eventueel kun je de public key ook op je PC opslaan, maar dat is niet nodig.

PuTTY
• Open PuTTY en geef het IP-adres van je Raspberry Pi in.
• Zorg er ook voor dat bij Port de waarde 22 staat en bij Connection type SSH is geselecteerd.
• Ga nu naar Connection > SSH > AUTH.
• Klik op Browse onder “Private key file for authentication”.
• Selecteer de private key die je eerder op je PC hebt opgeslagen.
• Tot slot ga je nu aan de linkerkant weer terug naar Session (helemaal links bovenaan) en klik je op Save.

Als je alles goed gedaan hebt kun je nu met de aangemaakte SSH key inloggen! Test dit goed aangezien we het inloggen via een gebruikersnaam en wachtwoord uit gaan schakelen. Het gebruik van privat en public keys, ook wel PKI genoemd zorgt voor extra beveiliging.

Om het inloggen met een wachtwoord uit te schakelen geef je onderstaand commando in:

sudo nano /etc/ssh/sshd_config

De editor opent zich. Er staan in het bestand drie regels die op no moeten komen te staan (vergeet eventueel ook niet om het #-teken voor de regels weg te halen).

PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

Sla het bestand op door op Ctrl+X te drukken, gevolgd door Y en [Enter]. Tot slot moeten we de ssh-service herstarten om de wijzigingen door te voeren:

sudo service ssh reload

Je kunt nu eenvoudiger met SSH inloggen en je Raspberry Pi is ook nog eens beter beveiligd tegen het grote, enge internet!

Have A Nice Day!