Informatie over ssh keys

Inleiding

In plaats van in te loggen door gebruik te maken van passwords, is het veel veiliger om met een key-pair in te loggen op bijvoorbeeld een SSH-server. Een key-pair bestaat uit een private key en een public key. De private key mag nooit bij een ander terecht komen. De publieke sleutel mag overal bekend zijn, en zal op de server geplaatst worden.

Deze howto bestaat uit twee onderdelen:

  1. Uitleg voor een windows-systeem
  2. Utileg voor een linux-systeem

Aanmaken van een key-pair op een windows-systeem

Op een windows-systeem kan gebruikt gemaakt worden van PuTTyGen voor het genereren van het key-pair. PuTTyGen is te downloaden via: http://stuwww.uvt.nl/putty/download.html. Sla PuTTyGen op en start PuTTyGen.

 

We gaan hier uit van een 8192-bits sleutel, van het type RSA. Deze keys zijn over het algemeen moeilijk kraakbaar, en daarom ideaal voor authenticatie.

Vul bij parameters in:

  • Type of key to generate : SSH-2 RSA
  • Number of bits in a key : 8192

Start het generen van een key-pair door te klikken op Generate. Het is vervolgens nodig random data in te voeren door met de muis over het lege vlak te bewegen.

Het genereren van het sleutelpaar neemt enige tijd in beslag.

Daarna wordt er om een password gevraagd, dat gebruikt moet worden om de private key te kunnen gebruiken. Vul hier tweemaal een sterke passphrase in, langer dan 12 karakters.

Sla vervolgens de public key en de private key op.

Plaatsen van Public Key op de server vanaf een windows-systeem

Het publieke deel wordt nu op de server geplaatst, in de directory “.ssh/” van de home-directory van de betreffende user.

E-mail het public-key bestand naar support@webscale.nl

De public key kan op meerdere servers geplaatst worden, waardoor men met 1 key-pair op meerdere servers kan inloggen. Om die reden is het dus van groot belang dat er een sterke passphrase op de private key zit, en dat een andere gebruiker nooit in het bezit kan komen van de private key!

Inladen van Private Key op een windows-systeem

Om nu te kunnen authenticeren tegen de server, moet eerst de private key ingeladen worden. Een programma dat de private keys inlaadt, en bijhoudt is pageant. Pageant is te downloaden via: http://stuwww.uvt.nl/putty/download.html. Sla pageant op en start pageant.

Wanneer pageant gestart is, zal er een extra icoon onder in de taakbalk verschijnen. Door rechts te klikken op het pageant-icoon is het mogelijk een key toe te voegen. Klik daartoe op 'Add Key'.

Selecteer de eerder opgeslagen private-key en open deze. Pageant vraagt vervolgens om de passphrase van de privatekey.

Nu kan eenvoudig ingelogd worden op de server via PuTTy, zonder gebruik te hoeven maken van passwords.

 

 

Aanmaken van een key-pair op een linux-systeem

We gaan hier uit van een 8192-bits sleutel, van het type RSA. Deze keys zijn over het algemeen moeilijk kraakbaar, en daarom ideaal voor authenticatie. Met het volgende commando kan een key-pair aangemaakt worden in een home-directory:

# ssh-keygen -t rsa -b 8192 -f ~/cluster_key -C "Cluster Key"

Het genereren van het sleutelpaar neemt enige tijd in beslag. Daarna wordt er om een password gevraagd, dat gebruikt moet worden om de private key te kunnen gebruiken.

Enter passphrase (empty for no passphrase):

Vul hier tweemaal een sterke passphrase in, langer dan 4 karakters.

Nu is er een public en private key aangemaakt in de home-directory van de gebruiker:

# ls ~/ |grep cluster_key

cluster_key

cluster_key.pub

Plaatsen van Public Key op de server vanaf een linux-systeem

Het publieke deel wordt nu op de server geplaatst, in de directory “.ssh/” van de home-directory van de betreffende user. Om die reden moet er vooraf een directory aangemaakt worden op de server, met de naam “.ssh”. Op de server:

$ mkdir ~/.ssh

Kopieer nu de public key van de lokale computer naar de server:

# scp ~/cluster_key.pub root@server.nl:~/.ssh/

Voeg nu deze sleutel op de server toe aan het lijstje van toegestane sleutels:

$ cat ~/.ssh/cluster_key.pub >> ~/.ssh/authorized_keys

 

Inladen van Private Key op een linux-systeem

Om nu te kunnen authenticeren tegen de server, moet eerst de private key ingeladen worden. Een programma dat de private keys inlaadt, en bijhoudt is ssh-agent. In de meeste grafische Desktop-omgevingen is dit programma al gestart. Dit kan men bekijken met het volgende commando:

# ps aux |grep ssh-agent

user 5849 0.0 0.0 4396 672 ? Ss Jul06 5:33 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager

Indien deze nog niet gestart is, kan dat gedaan worden met het commando:

# eval `ssh-agent`

Daarna wordt de private key ingeladen met het commando:

# ssh-add cluster_key

Enter passphrase for cluster_key:

Identity added: cluster_key (cluster_key)

Nu kan eenvoudig ingelogd worden op de server, zonder gebruik te hoeven maken van passwords.

# ssh root@server.nl

De public key kan op meerdere servers geplaatst worden, waardoor men met 1 key-pair op meerdere servers kan inloggen. Om die reden is het dus van groot belang dat er een sterke passphrase op de private key zit, en dat een andere gebruiker nooit in het bezit kan komen van de private key!

Hebt u meer vragen? Een aanvraag indienen

Opmerkingen

Mogelijk gemaakt door Zendesk