Objectif de cet article
Principe de ssh
Mise en oeuvre
1. Mise en oeuvre de ssh dans le cadre d'une connexion entre 2 machines Linux ( ou Unix )
2. Mise en oeuvre de ssh dans le cadre d'une connexion sur un serveur Linux à partir de Windows avec putty
a. Utilisation de la clé privée générée en 1. à partir de Linux
b. Utilisation d'une clé privée générée à partir de Puttygen
Objectif de cet article Présenter et décrire la mise en oeuvre d'une connexion ssh entre : Principe de ssh Pour éviter qu'un message ne soit lu par un tiers lorsqu'il transite sur le réseau ou sur le Web, il faut le coder (chiffrer) au moyen d'une clé de chiffrement. Le correspondant devra le décoder pour le rendre compréhensible. Deux types de chiffrement : 1. à clé unique privée ou à algorithme symétrique La clé de chiffrement est identique à la clé de déchiffrement, et chaque interlocuteur la connaît et doit la tenir secrète. Ce principe entraîne deux inconvénients : 2. à clé publique et privée ou à algorithme asymétrique, c'est ce principe que nous allons décrire dans cet article
Chiffrement à clé publique et clé privée L'algorithme est dit asymétrique, car il met en jeux deux clés différentes. Le destinataire d'un message possède donc deux clés : sa clé dite publique dont va prendre connaissance l'émetteur et qu'il va utiliser pour coder son texte. Cette clé peut, par exemple être publiée dans un annuaire LDAP ou X500 (Active Directory sous Windows 2000). sa clé dite secrète qui est différente de la première clé et, seule, qui permettra au destinataire de lire le texte reçu. Elle peut, par exemple être conservée sur une carte à puce, La connaissance d'une clé ne permet pas de déduire la seconde. La clé de décryptage étant secrète, unique et conservée par celui qui lit le message, personne d'autre n'en a connaissance. Dans la pratique, pour envoyer un message à un correspondant, il suffit de se procurer sa clé publique et de coder le message avec. Il y a donc réduction du nombre de clés nécessaires. Les algorithmes connus sont RSA et DSA
Combinaison des algorithmes symétriques et asymétriques L'inconvénient de l'algorithme asymétrique réside dans le temps de déchiffrement particulièrement long (100 à 1000 fois plus qu'avec un algorithme symétrique). Pour accélérer les traitements, les systèmes combinent généralement les deux principes : création aléatoire d'une clé temporaire symétrique par l'expéditeur, envoi de cette clé secrète par le système très sûr de la clé publique, envoi du message codé à l'aide de la clé symétrique temporaire, suppression de la clé symétrique temporaire. Les algorithmes symétriques connus sont DES et AES. Algorithme de Diffie-Hellman Cet algorithme permet à deux interlocuteurs de constituer entre eux une clé secrète au moyen de deux informations qu’ils s’échangent. Même si les deux informations sont interceptées, il est très difficile de reconstituer la clé de cryptage. Cette procédure qui permet l'échange de clés est utilisée pour initier des communications protégées. Longueur de clé L'évolution de la puissance des ordinateurs des délinquants allant de paire avec celle des utilisateurs, les algorithmes doivent devenir de plus en plus complexes et les clés de plus en plus longues. On estime actuellement qu'il faut pour être en sécurité : La législation française n'autorisait avant 1999 que des chiffrements à clé jusqu'à 40 bits, elle autorise 128 bits actuellement.
1. Mise en Oeuvre dans le cadre d'une Connexion entre 2 machines Linux ( ou Unix ) La configuration décrite ici se veut le minimum à mettre en oeuvre pour assurer cette connexion, pour une configuration plus sécurisée, il sera nécessaire de faire des choix plus spécifiques On plante le decor : Deux machines sous Linux en l'occurence sous Fedora 6, sur lesquelles sont installés les paquets suivants : [root@fedora1 ~]# rpm -qa| grep ssl openssl-0.9.8b-8 [root@fedora1 ~]# rpm -qa| grep ssh openssh-clients-4.3p2-10 openssh-askpass-4.3p2-10 openssh-4.3p2-10 openssh-server-4.3p2-10 Je veux que le compte « root » de la machine fedora1 puisse ouvrir une session en utilisant le compte « root » de la machine fedora3 sans avoir à renseigner de mot de passe et biensur en cryptant les données echangées entre les 2 machines ( c'est la vocation de ssh ). root sur fedora1 va générer un couple de clé privée/public. La clé privée sera conservée sur fedora1 La clé publique sera diffusée sur toutes les machines sur lesquelles root de fedora1 voudra se connecter. Génération du couple de clés : [root@fedora1 ~]# ssh-keygen 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: 41:a7:b0:25:7d:fa:2b:d0:55:86:7f:01:8a:70:15:60 root@fedora1.linux.tux [root@fedora1 .ssh]# ll total 40 -rw------- 1 root root 1675 mar 25 16:01 id_rsa -rw-r--r-- 1 root root 404 mar 25 16:01 id_rsa.pub id_rsa -----> contient la clé privée ( a conserver secrétement ) id_rsa.pub -----> contient la clé publique ( a diffuser sur toutes les machines sur lesquelles root de fedora1 voudra se connecter ) Diffusion de la clé publique de root de fedora1 pour se connecter sur le compte root de fedora3 : Par le moyen de son choix ( email , repertoire partagé, ftp , copier – coller, ...) on transfère la clé publique de root / fedora1 sur la machine fedora3. Cette clé publique doit être insérer dans le fichier /root/.ssh/authorized_keys ( eventuellement à la suite de clés déjà existantes) Dans mon exemple , je transfert cette clé publique, par copier-coller entre deux fenêtres ouvertes avec un émulateur sous Windows : putty J'ai ouvert une session sur chaque machine: sur la machine fedora1 : [root@fedora1 .ssh]# cat /root/.ssh/id_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzg69sIkWbC3lsBozUyPq9bwpxxo/G1Rb0ESqafFMqnrsJBpwhq5u7X4JDGwkV0QLArZgn8HHHz2KLRyutkgMZFlhH0VX0tcFyP/5PFiZDyF2zYOTi1tki7M2OMP3uW+bqY1zxQxvYhCQ01mPk1P7Gg6mXbBqDKbYd7d3kWspWE2piPKIme1S92wh7Mdbt7XhNBaJHZEHWw/ofKwp94Mv2E9vCzN/dIIkbR9OqxpcUXPzOMDyMsMqRm3bMXerQfFxlAhMJi1Oy1okUFJ0RnRYW9is62BklHrjkIlfunrDPgwo6SYMhFpNU2aQ3/OThG0lSmMGD+IzjiOsGdaf3B71KQ== root@fedora1.linux.tux sur fedora3 : [root@fedora3 .ssh]# vi /root/.ssh/authorized_keys et je suis en mode insertion Mise en surbrillance de la clé publique et copier -coller dans le fichier /root/.ssh/authorized_keys ouvert avec l'editeur vi dans la fenêtre putty ouverte sur fedora3. Resultat : [root@fedora3 .ssh]# cat /root/.ssh/authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzg69sIkWbC3lsBozUyPq9bwpxxo/G1Rb0ESqafFMqnrsJBpw hq5u7X4JDGwkV0QLArZgn8HHHz2KLRyutkgMZFlhH0VX0tcFyP/5PFiZDyF2zYOTi1tki7M2OMP3uW +bqY1zxQxvYhCQ01mPk1P7Gg6mXbBqDKbYd7d3kWspWE2piPKIme1S92wh7Mdbt7XhNBaJHZE HWw/ofKwp94Mv2E9vCzN/dIIkbR9OqxpcUXPzOMDyMsMqRm3bMXerQfFxlAhMJi1Oy1okUFJ0RnR YW9is62BklHrjkIlfunrDPgwo6SYMhFpNU2aQ3/OThG0lSmMGD+IzjiOsGdaf3B71KQ==root@fedora1.linux.tux Utilisation de ssh [root@fedora1 ~]# ssh fedora3 Last login: Sun Mar 25 17:53:14 2007 from fedora1.linux.tux [root@fedora3 ~]# ( La commande ssh supporte de nombreuses options , consulter le man ). 2. Mise en oeuvre dans le cadre d'une connexion ssh sur un serveur Linux à partir de Windows avec putty Pour les outils et les manipulations à réaliser , nous installerons sur Windows 2 logiciels : putty et puttygen à récupérer sur: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html Dans ce premier contexte on utilisera la clé privée précédement utilisée par root sur fedora1 pour se connecter à fedora3. Il nous faut donc récuperer cette clé privée pour l'insérer dans putty. Pour permettre à putty d'utiliser cette clé privé, on utilisera Puttygen pour la récupérer et la convertir dans un format exploitable par putty ( .ppk). Ouvrir une session sur la machine sur laquelle se trouve la clé privé et l'on affiche la clé privé, ici fedora1 : [root@fedora1 .ssh]# cat /root/.ssh/id_rsa -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAzg69sIkWbC3lsBozUyPq9bwpxxo/G1Rb0ESqafFMqnrsJBpw hq5u7X4JDGwkV0QLArZgn8HHHz2KLRyutkgMZFlhH0VX0tcFyP/5PFiZDyF2zYOT i1tki7M2OMP3uW+bqY1zxQxvYhCQ01mPk1P7Gg6mXbBqDKbYd7d3kWspWE2piPKI me1S92wh7Mdbt7XhNBaJHZEHWw/ofKwp94Mv2E9vCzN/dIIkbR9OqxpcUXPzOMDy MsMqRm3bMXerQfFxlAhMJi1Oy1okUFJ0RnRYW9is62BklHrjkIlfunrDPgwo6SYM hFpNU2aQ3/OThG0lSmMGD+IzjiOsGdaf3B71KQIBIwKCAQEAvGU/t1jECyKmHVnI hoc9OHGFSFKC1yiOdUYYJlj1oy6OwexJn7Vsu+DyVIAhOdfPjXOLir/L/041MI9A pqhF2Bc0Odj/1rX2qSSMGeqakX2ucsFw9HDQ9MEboZ06QyQ2jGQSEz6RuL6wTDSg hrMuuLzv4KFLBEDF6cxQD+zymd72hoy++gDZ3xmdpndytvXKDak6Fq1tkgKfKuk9 NTl2zSM+c16tA9HiCqlYAfQ3GKp3HQ53scjEaRgROQcv+ekoGK6jomPlvnHHtAW0 Jp68zg6JA3k/Fq4lN9qsElrtMIoGTpydULPdrV1mw6FdibKJNmF22UKC/HTFc70C PTxPiwKBgQDxKSajqm27P7hRvjE92WMo0ytTmKUGkNYYfCEf/LvoM3f24KXKaXBv BTyL7qxnrfqKkJndq1GpK8PAAlB4/fmM8o0Kas6swezGbuUmdVyCFIZ7u6ksSWEg ik2P97cyJDya15qb3+mZmPoFzT8diO2ZbniFYdDMmSU88m4DE+TmSQKBgQDavKH0 Dg6pa6/LwIN4ZjXjYfod/B5Q8obx6ZvvCJBttHjr3F4nzuQmLDmKekrYYH72YF9B nP3qR7fIWMdVyqDgxnw+wcFewSDrdIcQxto3xfJLU+qbSktKUSSjjrAdrLiXK5Ak lCv5RM5irLv3rORFyG/msHCnsN63MNHiVUAX4QKBgQDqRTt6awuCsu2RPGpZVtVa 28OwSyP3v+Xr5kwQcdscFL2t/szwg68Mw0IhiMS8fR9ExvvepmyVtXxUH4Ffl6H2 onph5Bk6G3hLvC8ParGi714RzD3wgcwQ+2FKBpS0Xbc3VRnZP+o9cAjSb5xl1XkY tHUT210ehiQsk7tTcmlUuwKBgQDH/OvX0laMRTMDbi8O/l0nqgk//HN9NYKxSp0y UPkT2DQK2BuSHD5OyVkuJqrUdXtk6mW4VQVofBW+fQ4FS4vGMdCuaAFAsJMgaood 96LxKgIY/EQ2NUwmsJaG6NuI2G5BEeLfnWoIeWw89bMrlsIT6nTwLEm944nMD2DO 7tuDiwKBgG1r/htM4uCE8U08wmpaJADHbasAb1Dr7bWSjY9z1Pkyscsr7qyQ3YMW OHP/CtP7rES2oq6Q32EjL3yzawP7h8k29/0l5bxpUbBKNPXaCvhwhni0qcwroKdf m8Nt69mgsF2Orn8UtVkAoR5+0aLYgJ7S6/2+VX5xDHISVBpRkTSL -----END RSA PRIVATE KEY----- On lance un editeur Windows , par exemple notepad et on fait un copier-coller de cette clé dans notepad: On enregistre ce fichier, ici je l'ai enregistré dans « Mes Documents » sous le nom « ma clé privée.txt » Lancer Puttygen : Menu Conversions ---> Import key Ouvrir le fichier « ma clé privée.txt » précedemment enregistré dans « Mes documents » : Enregistrer cette clé privée pour putty : Si l'on choisit de ne pas protéger cette clé privée par une pass-phrase, on clique Oui sur le message suivant On enregistre cette clé, ici je l'enregistre sous le nom « ma clé privée.ppk » dans « Mes documents » :  On en a terminé avec Puttygen, on lance putty : Dans le champ « Host Name ( or IP Address ) : on saisit l'adresse IP ou le nom de la machine Linux sur laquelle on veut se connecter ( sous réserve que ce nom soit correctement résolu par un fichier hosts ou par DNS ) on choisit de se connecter sur le port 22 du serveur Linux , port du service ssh par defaut. Et on choisit biensur d'utiliser le protocol SSH. Dans la colonne « Catégory »,selectionner SSH puis Auth et avec le bouton Browse , pointer sur le fichier précédemment généré avec Puttygen : Si l'on veut ne pas avoir à saisir le nom de login: dans la colonne Category ---> Connection ----> Data, dans le champ Auto-login username renseigner le nom de login avec lequel se connectera , en l'occurence : root On revient sur Session pour enregistrer ces différentes informations, dans le champ Saved Sessions, je tape le nom sous lequel ces différentes informations seront sauvegardées Puis bouton Open. A la première ouverture de session : Cliquer sur Oui Lors des ouvertures de sessions suivantes, c'est la clé privée qui permettra l'autentification de l'utilisateur ( et non plus son mot de passe ) et c'est la combinaison de la clé privée et publique qui assurera le cryptage des données transitant par le réseau entre les deux postes . Dans ce deuxième contexte on va utiliser la clé privée, non plus récupérée du système Linux mais générée avec puttygen. Lancer puttygen, bouton Generate et on bouge aléatoirement la souris dans l'espace blanc de la fenêtre. Le couple de clés privée et publique a été créé. On les sauvegarde. Exportation de la clé publique sur la machine Linux sur laquelle on va se connecter, ici toujours fedora3. Copier-coller la clé publique affichée dans la fenêtre précédente dans le fichier /root/.ssh/authorized_keys sur fedora3 : Utilisation de cette nouvelle clé privée : Lancer putty Plutôt que de recréer une nouvelle configuration , je vais réutiliser la configuration précedemment sauvegardée sous le nom « fedora3 » et modifier simplement la clé privée : Load ---> fedora3

Category SSH , Auth Bouton Open , pour utiliser ce nouveau couple de clé.
Date de création : 26/03/2007 @ 10:46
Dernière modification : 26/03/2007 @ 15:50
Catégorie :
Page lue 11082 fois
Prévisualiser la page
Imprimer la page
|