Administration Linux et Windows
Blogue
Comment utiliser SSH avec des clés
Rédigé par Frédéric Thériault,
le 2011-05-26 14:38:28
La méthode traditionnelle permettant de se connecter avec SSH est en utilisant un mot de passe. Par exemple lors d'une connexion à un serveur Web à distance. Malheureusement, il est possible pour un tiers de "deviner" le mot de passe (ex: KeyLogger, Brute force attack, ...)
Un processus plus sécuritaire est l'utilisation de clés asymétriques (publique/privée).
Le processus est relativement simple.
1- Machine locale : Créer une clé privée et une clé publique
2- Serveur Web/distant : Lui fournir la clé publique et la placer dans sa liste de "clés autorisées"
Ainsi, lors d'une communication SSH, le serveur distant fournira un message encrypté avec la clé publique à la machine locale. Si la machine locale est capable de décrypter le message en utilisant la clé privée, alors c'est que l'authentification est valide.
Évidemment, si la clé privée est volée, celui qui la possèdera pourra également se connecter au serveur distant. Il faut donc la garder précieusement !
Donc, sans plus tarder, voici les étapes à suivre :
1- Création des clés
Sur la machine locale, faire:
2- Envoyer la clé publique sur le serveur distant
En étant connecté sur la machine locale, il faut aller dans le répertoire où se trouvent les clés.
Il faut par la suite copier la clé publique sur le serveur distant.
Finalement, il faut aller sur le serveur distant et placer la clé publique comme étant autorisée.
3- Tester le tout
Il ne reste qu'à essayer la connexion SSH de nouveau. Si tout fonctionne, le mot de passe ne sera plus demandé. Par contre, si une "passphrase" a été défini, celle-ci sera demandé.
L'utilisation de passphrase
Dans le cas où il n'y aurait pas de passphrase de défini, la connexion est instantanée. Cependant, si quelqu'un met la main sur la clé privée de la machine locale, il pourra s'en servir pour se connecter au serveur distant. Pour prévenir cela, c'est une bonne pratique de définir une passphrase. Ainsi, même si quelqu'un réussit à avoir la clé privée, il lui sera impossible de l'utiliser.
Pour éviter que la passphrase soit demandée à chaque utilisation de la clé (connexion SSH), il faut utiliser l'utilitaire ssh-agent.
Ce document ne fait que survoler l'utilisation de clés pour se connecter avec SSH, et le procédé expliqué plus haut a été fait avec CentOS 5.5 uniquement.
Un processus plus sécuritaire est l'utilisation de clés asymétriques (publique/privée).
Le processus est relativement simple.
1- Machine locale : Créer une clé privée et une clé publique
2- Serveur Web/distant : Lui fournir la clé publique et la placer dans sa liste de "clés autorisées"
Ainsi, lors d'une communication SSH, le serveur distant fournira un message encrypté avec la clé publique à la machine locale. Si la machine locale est capable de décrypter le message en utilisant la clé privée, alors c'est que l'authentification est valide.
Évidemment, si la clé privée est volée, celui qui la possèdera pourra également se connecter au serveur distant. Il faut donc la garder précieusement !
Donc, sans plus tarder, voici les étapes à suivre :
1- Création des clés
Sur la machine locale, faire:
[usr@machine]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/usr/.ssh/id_rsa): Appuyer sur Enter
passphrase (empty for no passphrase): Appuyer sur Enter ou définir une passphrase
Enter same passphrase again: Appuyer sur Enter ou réécrir une passphrase
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is: 3d:15:66:f0:02:31:ca:0d:c5:d6:98:8b:64:07:ed:94 usr@machine
La clé publique et la clé privée sont maintenant créées.Generating public/private rsa key pair.
Enter file in which to save the key (/home/usr/.ssh/id_rsa): Appuyer sur Enter
passphrase (empty for no passphrase): Appuyer sur Enter ou définir une passphrase
Enter same passphrase again: Appuyer sur Enter ou réécrir une passphrase
Your identification has been saved in id_rsa.
Your public key has been saved in id_rsa.pub.
The key fingerprint is: 3d:15:66:f0:02:31:ca:0d:c5:d6:98:8b:64:07:ed:94 usr@machine
2- Envoyer la clé publique sur le serveur distant
En étant connecté sur la machine locale, il faut aller dans le répertoire où se trouvent les clés.
[usr@machine]$ cd ~/.ssh
Il faut par la suite copier la clé publique sur le serveur distant.
[usr@machine]$ scp id_rsa.pub usr2@serveur.com:/home/usr2/id_rsa.pub
Finalement, il faut aller sur le serveur distant et placer la clé publique comme étant autorisée.
[usr@machine]$ ssh usr2@serveur.com
Fournir le mot de passe habituel
[usr2@serveur]$ cd ~
[usr2@serveur]$ cat id_rsa.pub >> .ssh/authorized_keys
La clé est maintenant authorisée par le serveur.Fournir le mot de passe habituel
[usr2@serveur]$ cd ~
[usr2@serveur]$ cat id_rsa.pub >> .ssh/authorized_keys
3- Tester le tout
Il ne reste qu'à essayer la connexion SSH de nouveau. Si tout fonctionne, le mot de passe ne sera plus demandé. Par contre, si une "passphrase" a été défini, celle-ci sera demandé.
L'utilisation de passphrase
Dans le cas où il n'y aurait pas de passphrase de défini, la connexion est instantanée. Cependant, si quelqu'un met la main sur la clé privée de la machine locale, il pourra s'en servir pour se connecter au serveur distant. Pour prévenir cela, c'est une bonne pratique de définir une passphrase. Ainsi, même si quelqu'un réussit à avoir la clé privée, il lui sera impossible de l'utiliser.
Pour éviter que la passphrase soit demandée à chaque utilisation de la clé (connexion SSH), il faut utiliser l'utilitaire ssh-agent.
[usr@machine ~]$ eval `ssh-agent`
Agent pid 8559
[usr@machine ~]$ ssh-add
Entrer la passphrase de la clé privée.
Agent pid 8559
[usr@machine ~]$ ssh-add
Entrer la passphrase de la clé privée.
Ce document ne fait que survoler l'utilisation de clés pour se connecter avec SSH, et le procédé expliqué plus haut a été fait avec CentOS 5.5 uniquement.
Ajouter votre commentaire
Les articles
-
Comment utiliser SSH avec des clés2011-05-26 14:38:28
-
Tableau des permissions2011-05-15 18:19:50