Authentification SSH par clef RSA

18 août 2009 par Anthony Laisser une réponse »

Le client SSH s’utilise le plus sou­vent avec un cou­ple utilisateur/mot de passe sur la machine dis­tante. Toute­fois, il est pos­si­ble d’utiliser une clef RSA (authen­tifi­ca­tion par clef publique) pour s’authentifier sur la machine dis­tante. L’utilisation de cette méth­ode d’authentification cou­plée avec une passphrase per­met de met­tre en place un mécan­isme d’authentification forte, et donc d’augmenter le niveau de sécurité.

Je vous pro­pose donc un petit tuto­riel sur la mise en place de cette méth­ode, avec un client Win­dows ou Unix/Linux.


Créa­tion d’une paire de clefs RSA

Sous Win­dows, avec PuTTYgen

Il faut au préal­able récupérer PuT­Ty­gen. Ensuite, il suf­fit de l’exécuter, et de cli­quer sur “Gen­er­ate”. Une fois la clef générée, on met en com­men­taire <username>@<machinedistante>, on indique une passphrase et on sauve­g­arde notre cou­ple de clef.

Génération de clef RSA avec PuTTYgen

Généra­tion de clef RSA avec PuTTYgen

Sous Unix/Linux, avec ssh-keygen

Nous allons com­mencer par générer un cou­ple de clefs RSA. Pour cela le plus sim­ple et de lancer la com­mande ssh-keygen –t rsa –b 1024 –C <username>@<machinedistante>. Le com­men­taire (option –C) va per­me­t­tre de dis­tinguer une clef d’une autre facilement.

Génération d'une paire de clef RSA pour SSH

Généra­tion d’une paire de clef RSA pour SSH

Con­fig­u­ra­tion de la machine distante

Tout d’abord, il est néces­saire d’activer cette méth­ode au niveau du dae­mon SSH.

Pour cela, votre fichier /etc/ssh/sshd_config doit con­tenir ces deux lignes:

RSAAu­then­ti­ca­tion yes
Pub­keyAu­then­ti­ca­tion yes
Autho­rized­KeysFile      %h/.ssh/authorized_keys

Il faut ensuite raf­fraichir la con­fig­u­ra­tion de sshd, en lançant la com­mande suiv­ante: /etc/init.d/sshd reload.

Réglage du serveur SSH

Réglage du serveur SSH

Instal­la­tion de votre clef publique sur la machine distante

Pour une clef générée via PuTTYgen

Il va fal­loir placer notre clef publique sur le serveur (via Win­SCP par exem­ple). Ensuite, nous devons mod­i­fier notre clef, pour la ren­dre com­pat­i­ble avec OpenSSH. Pour cela, nous avons deux possibilités:

  • utiliser mon petit script: putty2opens.sh
  • exé­cuter les opéra­tions suivantes:
    1. Sup­pres­sion des deux pre­mières lignes, ainsi que de la dernière
    2. Lancer la com­mande perl –pi –e ‘s/\n//g’ <fichier con­tenant la clef publique>
    3. On ajoute ssh-rsa au début du fichier, suivi d’un espace
    4. On ajoute notre com­men­taire en fin de fichier, après un espace, suivi d’un retour à la ligne

Ce qui nous donne quelque chose comme ceci:

ssh_rsa-4

Enfin, nous lançons la com­mande suiv­ante: cat <fichier con­tenant la clef publique> » ~/.ssh/authorized_keys

Pour une clef générée via ssh-keygen

Nous allons indi­quer sur la machine dis­tante que notre clef est valide pour l’authentification sur le serveur. Pour cela, il nous suf­fit de copier notre clef publique dans le fichier ~/.ssh/authorized_keys de la machine dis­tante, en lançant la com­mande suiv­ante: cat <fichier con­tenant la clef publique> » ~/.ssh/authorized_keys

ssh_rsa-3

Con­fig­u­ra­tion du client

A présent nous dis­posons d’un cou­ple de clefs RSA, nous avons activé ce mode d’authentification sur la machine dis­tante et nous avons autorisé notre cou­ple de clef à se con­necter sur la machine dis­tante. Il ne nous reste plus qu’à con­fig­urer notre poste client.

Sous Win­dows, avec PuTTY:

On rem­plit les infor­ma­tions habituelles, puis on va indi­quer le chemin de notre clef privée dans “Con­nec­tion” -> “SSH” ->“Auth”. On peut égale­ment indi­quer notre login dans “Con­nec­tion” -> “Data”.

Réglages de PuTTY

Réglages de PuTTY

Et voila, vous n’avez plus qu’à vous connecter:

Connexion via PuTTY

Con­nex­ion via PuTTY

Sous Unix/Linux, avec OpenSSH

Le plus sim­ple est de placer votre clef privée dans le fichier ~/.ssh/id_rsa.

Ainsi, il vous suf­fit de lancer votre com­mande ssh habituelle pour prof­iter du mécanisme:

ssh_rsa-7

Si vous dis­posez de plusieurs clef, vous pou­vez alors pré­ciser quelle clef utiliser via l’option –i.

Con­clu­sion

Et voila, si votre clef dis­pose d’une passphrase, vous utilisez à présent de l’authentification forte pour accéder à votre machine dis­tante. Si tous les util­isa­teurs de cette machine utilisent eux aussi l’authentification par clef, vous pou­vez dés­ac­tiver la méth­ode de con­nex­ion usuelle (par mot de passe) dans le fichier de con­fig­u­ra­tion du dae­mon ssh.

Si vous ren­con­trer des prob­lèmes ou si vous avez des com­men­taires à faire, n’hésitez pas à réagir ;)

VN:F [1.8.4_1055]
Rat­ing: 8.3/10 (3 votes cast)
VN:F [1.8.4_1055]
Rat­ing: +2 (from 2 votes)
Authen­tifi­ca­tion SSH par clef RSA8.3103 If you enjoyed this post, make sure you sub­scribe to my RSS feed!
Publicité

Laisser un commentaire