Sécuriser un accès SSH avec une paire de clés RSA : Génération des clés et application sur le serveur

Tutoriaux > Linux > Sécuriser un accès SSH avec une paire de clés RSA : Génération des clés et application sur le serveur

Sécuriser un accès SSH avec une paire de clés RSA : Génération des clés et application sur le serveur
Un accès SSH a beau être chiffré, il suffit de connaître le mot de passe pour pouvoir s'y connecter de n'importe où dans le monde. Les clés RSA permettent une sécurisation supplémentaire.

Génération de la clé

Pour générer une clé aléatoire, une simple ligne de commande va suffir : ssh-keygen -t rsa. Il faut générer la clé sur la machine cliente, et nous allons transférer les droits vers la machine distante par la suiteClin d'oeil

Une fois la commande tapée, vous pouvez choisir le chemin où sauvegarder la clé, ainsi que le mot de passe (si vous en voulez un) nécessaire pour l'utiliser.

Pouzy:~ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
56:dd:71:6f:f6:a0:2d:f0:dc:06:5a:1c:79:c3:01:c8 [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| . .o+o..|
| Eo.o+o.|
| o =.o.+|
| . * = +.|
| S . = + .|
| . o |
| |
| |
| |
+-----------------+


Comme le script nous l'a affiché, deux fichiers ont été créés. La clé privée (dans /root/.ssh/id_rsa) reste sur le serveur et ne doit en aucun cas être dévoilée, et la clé publique (dans /root/.ssh/id_rsa.pub) est celle que les machines qui veulent se connecter (clientes) devront utiliser pour pouvoir s'authentifier.

Pouzy:~ ls /root/.ssh
id_rsa id_rsa.pub known_hosts


Il faut maintenant autoriser l'utilisation de la clé publique pour se connecter au serveur.

Authorisation de la clé publique

C'est une étape plutôt simple, à savoir qu'il faut copier la clé publique dans le fichier ~/.ssh/authorized_keys. S'il n'existe pas encore, créez leClin d'oeil
Il faut ajouter les clés publiques, au rythme d'une par ligne.
Flèche Ici, la commande pour simplement copier la clé publique dans le fichier authorized_keys :

Pouzy:~# cat ~/.ssh/id_rsa.pub | ssh [email protected] "cat - >> ~/.ssh/authorized_keys"

Et sur la machine distante on peut voir :

MachineDistante:~# ls ~/.ssh/
authorized_keys id_rsa id_rsa.pub known_hosts
MachineDistante:~# cd ~/.ssh
MachineDistante:~/.ssh# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAd...
== [email protected]


On a tronqué la clé ici car ça ne sert pas à grand chose de l'afficher entièrement.
Mais elle est donc bien dans ~/.ssh/authorized_keys

Utilisation de la clé privée sur la machine cliente

La machine qui se connecte au serveur doit, elle, avoir sa clé privée. On se rappelle qu'elle a été générée dans ~/.ssh/id_rsa.

Pouzy:~/.ssh# cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,45D10A33ACD9B6DA

qtCmfrwr20KKoszm0ubn7npSK76ziygHIJG78WtvZw54nf3He4eAyd8qpi2n8GQTlyt1L
+az/WEIQTiPYjGW0J8Di3x85XcF6zRmaOOuWL+r37nrSWVQIxj4JajuKlHq3X2RD
tfXX+Y60Pz+IOov8Sd1BsdCV33epgYOlzM1qctyHEXwJo4dXl9T5aPIyoO9pk2Ks
zV36pv6rdB1TR75TyP5UCkYHF8aBTdta4tNMv4qHvaex0s1+R0J8j5SL9MwhFmE/
-----END RSA PRIVATE KEY-----


On a encore tronqué la clé ici. Vous devez donc rapatrier ce fichier sur votre machine locale, qui devra l'utiliser lors de la connexion SSH. Pour le rapatrier, vous pouvez simplement copier/coller la clé dans un fichier texte par exempleSourire

Connexion sous Linux

Si la machine locale est sous Linux, vous n'aurez aucun souci et un simple ssh [email protected]_distante utilisera la clé au besoin !

Pouzy# ssh [email protected]_distante
Authenticating with public key "openssh-key"
Passphrase for key "openssh-key":


Connexion sous Windows avec Putty

Sous Putty, vous pouvez aussi générer des clés RSA. Nous allons utiliser simplement celles que nous venons de générer, vous pourrez trouver des tutoriaux sur internet expliquant comment générer des clés directement sous Windows.

Nous allons simplement convertir notre clé privée en clé compatible avec Putty. Pour cela, il vous faut télécharger PuttyGen

Ensuite, lancez-le, puis cliquez sur "Load File", retrouvez le fichier de la clé privée que vous avez sauvegardé plus haut dans un fichier texte. Une fois la conversion faite, vous verrez un message de confirmation :


Sauvegardez alors le fichier .ppk. Puis, dans Putty, lorsque vous vous connectez, il vous faut simplement lui dire d'utiliser le fichier que vous venez de sauvegarder, dans l'onglet Connection => SSH => Auth, il faut remplir le champ "Private key file for authentification"Sourire


Il vous suffit maintenant de vous connecter normalement, Putty utilisera la clé privée pour se connecterContent

Interdire l'accès par simple nom d'utilisateur / mot de passe


C'est bien beau d'avoir une clé toute neuve qui fonctionne, mais pour l'instant on peut toujours se connecter au serveur SSH alternativement, simplement en tapant le pseudo et le mot de passe. Nous pouvons interdire ça, pour n'autoriser que les connexion par clé.

Attention, cette manipulation vous oblige a avoir toujours une copie de votre clé privée, car si vous la perdez il faudra intervenir physiquement sur le serveur pour en générer une nouvelle ! Gardez la en deux endroits physiquement différentsClin d'oeil

Pour interdire l'authentification par mot de passe, il vous faut éditer le fichier /etc/ssh/sshd_config
Il faut éditer la variable PasswordAuthentication, pour la passer à no (et décommenter la ligne, qui l'est par défaut).

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no


Un redémarrage de sshd, et hop, le bruteforce de mot de passe ne sera plus possible !

/etc/init.d/ssh restart

Ainsi, si on essaie de se connecter avec Putty sans préciser de clé...



Par Pouzy , Le 27 Avril 2010 à 15h45
Ce tutoriel est la propriété d'Aidoweb et ne peut en aucun cas être copié.

Retour à Linux

Ajouter un commentaire

Suite a un fort volume de spam, les commentaires d'invités sont pour le moment désactivés. Vous devez vous inscrire ou vous identifier pour pouvoir commenter cet article, ou demander du support.

Lectures recommandées

Commentaires sur cet article

Pouzy - Le 24 Juin 2010 à 21h22

Crée un sujet sur le forum, et dis moi où tu coinces ! Je me suis peut-être mal expliquéConfus

Baal-Zebub - Le 24 Juin 2010 à 17h57

J'arrive pas a suivre le tuto, c'est moi qui suit un boulet ou il y a une erreur quelque part?

Tutoriaux > Linux > Sécuriser un accès SSH avec une paire de clés RSA : Génération des clés et application sur le serveur