Inleiding
Je kunt op afstand via SSH op de meeste Linux machines inloggen met een gebruikersnaam en een wachtwoord. Maar een veiligere manier is het inloggen met een sleutel paar (key pair). Zo’n sleutel paar bestaat uit een publieke sleutel (public key) en een privé sleutel (private key). De publieke sleutel wordt op de remote machine gezet in het account wat je op die machine hebt en de bijbehorende privé sleutel bewaar je op en veilige plek op je eigen machine. Deze privé sleutel wordt gebruikt om aan de andere machine kenbaar te maken dat jij ook echt bent wie je zegt dat je bent.
In onderstaande stappen laat ik zien hoe je zo’n sleutel paar aan kunt maken en hoe je die met PuTTY kunt gebruiken om zonder een wachtwoord in te loggen.
Installatie van PuTTY
We gaan gebruik maken van PuTTY om een sleutel paar aan te maken en om op de remote machine in te kunnen loggen. Als eerste gaan we PuTTY installeren.
Ga, op de machine vanwaar je wilt inloggen, naar www.putty.org en klik op ‘Download PuTTY.

Je komt nu op een nieuwe website terecht (www.chiark.greenend.org.uk) en hier klik je onder de kop ‘Package files’ op de juiste msi die geschikt is voor het besturingssysteem van je eigen machine. In de meeste gevallen zal dat de versie ’64-bit x86′ zijn.

Start het zojuist gedownloade bestand op (je kunt het vinden in de downloads map). Je krijgt dan onderstaande scherm.
Klik daar op ‘Next’ om door te gaan.

Laat de standaard locatie staan tenzij je het programma ergens anders wilt installeren.
Klik op ‘Next’ om door te gaan

De geselecteerde opties zijn voldoende tenzij je graag een snelkoppeling op je bureaublad wil, zet dan de optie ‘Add shortcut to PuTTY on the Desktop’ aan.
Klik op ‘Install’ om de installatie te starten.

Onderstaande beveiligingsmelding komt nu op je scherm.
Klik op ‘Ja’ om door te gaan.

Je kunt het vinkje bij ‘View README file’ weg halen in onderstaand scherm.
Klik op ‘Finish’ om de installatie af te sluiten.

Aanmaken sleutel paar
Samen met PuTTY is ook een programma PuTTYgen geïnstalleerd. Dit programma gaan we gebruiken om het sleutel paar te genereren.
Klik op de startknop onder in de menubalk en vul dan in het zoekvenster de tekst ‘putty’ in. Als het goed is zie je dan het programma PuTTYgen in de resultaten staan.
Klik op dit programma om het te starten.

In het PuTTY Key Generator scherm wat nu in beeld komt wijzig je recht onder de waarde van 2028 naar 4096. Hiermee verdubbelen we het aantal bits van de sleutel en deze wordt daarmee sterker.
Klik vervolgens op de knop ‘Generate’.

Nu is het de bedoeling dat je met de muis willekeurige bewegingen gaat maken in het bovenste vak.
Je ziet boven in het scherm een groene balk die naar rechts vol loopt.
Zodra deze vol is zal er een sleutel paar gegenereerd worden.

Klik nu in met de rechtermuistoets op de sleutel in het bovenste deel van het scherm en kies voor ‘Alles selecteren’

Klik met de rechtermuistoets op de selecteerde sleutel en kies voor ‘Kopiëren’.

Klik met rechts op de Windows start knop en kies dan voor ‘Uitvoeren’.

Vul in het scherm van Uitvoeren de tekst ‘Notepad’ in om het kladblok op te starten.

Nu gaan we de gekopieerde sleutel in het kladblok plakken om deze vervolgens weer op te slaan.
Klik met rechts in het scherm en kies voor ‘Plakken’.

Klik vervolgens in de menubalk op ‘Bestand’ en daarna op ‘Opslaan als’.

Kies nu een locatie waar je het sleutel paar uiteindelijk op wil slaan. Deze locatie heb je later weer nodig.
Ik heb in onderstaande afbeelding gekozen om op het bureaublad en map ‘SSH sleutels’ te maken en daarbinnen een map ‘Server 1’.
Ik heb het bestand de naam ‘Publieke sleutel.txt’ gegeven.

Minimaliseer nu het kladblok venster, deze hebben we later weer nodig.
Klik in het Putty Key Generator scherm op de knop ‘Save private key’

Je krijgt nu de vraag of je de privé sleutel zonder wachtwoord bescherming wil opslaan.
Klik op ‘Ja’ om door te gaan.

Sla de privé sleutel op in dezelfde map als waar je ook de publieke sleutel hebt opgeslagen en geef het bestand de naam ‘Prive sleutel.ppk’

Publieke sleutel op de remote machine plaatsen
Nu we het sleutel paar hebben moeten we de publieke sleutel opslaan in een bestand van de gebruiker op de remote machine. Hiervoor is het wel nodig dat je op afstand toegang hebt tot die machine via bijvoorbeeld PuTTY.
Klik op de startknop onder in de menubalk en vul dan in het zoekvenster de tekst ‘putty’ in. Als het goed is zie je nu het programma PuTTY in de resultaten staan.
Klik op dit programma om het te starten.

Je ziet nu het ‘PuTTY Configuration’ scherm. Standaard zal PuTTY een SSH verbinding willen maken.
Vul bij ‘Host Name (or IP address)’ nu de naam gevolgd door een @ en daarachter weer het ip adres van je remote Linux machine in (In onderstaande afbeelding is dat ‘administrator@192.168.200.156’).
Klik daarna op de knop ‘Open’.

Wanneer je voor de eerste keer via SSH een verbinding maakt met een Linux machine krijg je een beveiligingsmelding van PuTTY dat de sleutel van de remote machine nog niet bekend is. Iedere Linux machine heeft een unieke sleutel en hiermee hebt je een extra identiteit controle.
Als je een volgende keer weer verbinding maakt met dezelfde machine mag deze melding niet meer verschijnen. Gebeurt dat wel dan moet je voorzichtig zijn en kun je het beste op de knop ‘Cancel’ klikken en controleren of je inderdaad het juiste IP adres of de juiste naam achter het @ hebt ingevuld!
Als je zeker weet dat dit inderdaad de machine is waarmee je verbinding wil maken klik je op de knop ‘Accept’.

Je krijgt nu het inlogscherm van de machine te zien waar de gebruikersnaam al automatisch voor je ingevuld is (deze inlognaam heb je zelf voor het @ gezet) en er wordt om het bijbehorende wachtwoord gevraagd.
Vul het wachtwoord in.

Als je het juiste wachtwoord hebt ingevuld ben je nu ingelogd.
Nu gaan we het bestand openen waar we de publieke sleutel in gaan zetten voor deze gebruiker.
Typ hiervoor het volgende commando in:
nano .ssh/authorized_keys

Nu moeten we de sleutel op het klembord zetten zodat we het zo dadelijk kunnen plakken.
Open de publieke sleutel of maximaliseer het kladblok waarin je dit bestand nog geopend hebt en druk op de toet combinatie CTRL en de letter A om de hele sleutel te selecteren.
Druk op de rechter muistoets en kies ‘Kopiëren’.

Ga nu terug naar je PuTTY scherm en klik daar met rechts in. Je ziet nu het laatste deel van je publieke sleutel verschijnen.
Druk de toets combinatie CRTL en X in.

Onder in het scherm zie je nu de vraag ‘Save modified buffer?’ wat wil betekent of je het bestand op wil slaan.
Druk op de Y toets om de vraag te bevestigen.

Nu zie je onder in het scherm de filenaam (.ssh/authorized_keys) welke gebruikt wordt om het bestand op te slaan. Druk op ENTER om deze te bevestigen.

Nu kom je weer terug op de opdracht prompt.
Typ het commando ‘exit’ en druk op de ENTER toets. Hiermee sluiten we de SSH sessie en wordt ook PuTTY automatisch afgesloten.
Sleutel paar testen
Nu zijn alle voorbereidende handelingen afgerond en kunnen we gaan testen of we nu met de privé sleutel in kunnen loggen op de remote machine. Hiervoor starten we weer PuTTy op (zie hierboven als je niet meer weet hoe je dat kunt doen).
We vullen ook nu weer bij ‘Host Name (or IP address)’ de naam gevolgd door het @ teken en daarachter het ip adres van je remote Linux machine in.
Maar nu gaan we ook de prive sleutel in deze sessie gebruiken en daarvoor ga je aan de linker kant in het menu naar: ‘Connection’ => ‘SSH’ => ‘Auth’ => ‘Cedentials’.
Klik op de knop ‘Browse…’

Nu ga je naar de map waar je eerder de prive sleutel hebt opgeslagen.
In mijn geval was dat de map ‘Server 1’ in de map ‘SSH Sleutels’ op het bureaublad.

Klik daarna op de knop ‘Open’.

Wanneer alle voorgaande stappen goed zijn uitgevoerd heb je nu zonder wachtwoord maar met het sleutel paar een verbinding gemaakt met de remote machine.

Mocht je een foutmelding krijgen over de sleutel dan is de kans groot dat er iets is fout gegaan met het kopiëren van de publieke sleutel naar de remote machine. Voer dan de stappen onder de kop ‘Publieke sleutel op de remote machine plaatsen’ opnieuw uit en test het inloggen opnieuw.