Anas Abou El Kalam Sécurité SSH
SSH
1 Introduction
La possibilité de travailler distance. a toujours été une fonctionnalité très
appréciée des utilisateurs de machines UNIX. Cela est traditionnellement possible
suivant plusieurs modes de connexion: telnet, rlogin, rsh, ftp, ...
Le gros problème avec ces modes de connexions c'est que l'authentication que
vous devez fournir pour vous connecter sur la machine distante circule .en clair.
sur le réseau. C'est à dire que n'importe quelle personne qui a accès au réseau
vous vous trouver peut à l'aide de programmes appelés .sniffeurs. récupéré votre
mot de passe.
2 Versions disponibles
Il existe un certain nombres de logiciels utilisant les connexions sécurisées.
Une version UNIX openssh : contient les partie serveurs et clientes de ssh
Une version Windows putty : contient une partie cliente pour Windows.
3 Principes de fonctionnement.
ssh est basé sur un mécanisme de clé publique clé privé. Ces deux clés
sont .mathématiquement reliée. Typiquement la clé publique sert à chiffrer un
message et la clé privé sert à le déchiffrer. Prenons un exemple.
Si je veux me connecter sur la machine distante java, je tape
ssh java
J'obtiens alors le message suivant :
The authenticity of host 'java (157.159.15.20)' can't be established.
RSA key fingerprint is
d7 :69 :a7 :db :89 :71 :ff :13 :54 :ce :b4 :0d :55 :f6 :a9 :04.
Are you sure you want to continue connecting
(yes/no)? yes
Comme je ne me suis jamais connecté sur la machine java je ne connais pas sa clé
publique. Je vais donc répondre yes. J'obtiens alors les messages suivants :
Warning : Permanently added 'java,157.159.15.20' (RSA)
to the list of known hosts.
[email protected]'s password :
Je rentre alors mon mot de passe qui va être chiffré avec la clé publique de la
machine java. La machine java va utilisé sa clé privée pour déchiffrer le mot de
passe et ainsi va pouvoir vérier mon identité. On ne peux donc pas me .sniffer.
mon mot de passe.
Si je me Re connecte sur java j'obtiens immédiatement la ligne
[email protected]'s password :
Anas Abou El Kalam Sécurité SSH
4 Ne plus rentrer son mot de passe
On peut aller encore plus loin et générer des clés d'identication personnelle. Le
principe est de générer une clé associée à un texte et de propager la partie
publique de la clé sur toutes les machines auxquelles vous souhaitez vous
connecter. Voici comment il faut procéder si vous voulez vous connecter d'une
machine (e.g., nommé rezo)sur la machine distante java.
4.1 Première étape
Sur la machine rezo il faut générer les clés d'authentication. Ces clés sont liées à
un compte particulier. On va donc créer ces clés pour notre compte courant. Nous
allons donc travailler avec le compte grocanar. Cela se fait en tapant la commande
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/grocanar/.ssh/id_rsa) :
Enter passphrase (empty for no passphrase) :
On doit donc alors entrer une .passphrase. qui va protéger la clé privée générée. Il
faut que cette phrase ait au moins 20 caractères.
Même si il est possible de ne pas rentrer cette pass phrase cela n'est pas du tout
conseillé. En effet c'est le seul moyen de protéger vos clés si quelqu'un arrive à
accéder à votre compte.
Après avoir tapé deux fois cette phrase on obtient alors les messages suivants :
Enter same passphrase again :
Your identification has been saved in /home/grocanar/.ssh/id_rsa.
Your public key has been saved in
/home/grocanar/.ssh/id_rsa.pub.
The key fingerprint is :
ea :9c :c8 :0f :89 :5a :12 :52 :81 :3e :c1 :21 :0e :fd :37 :07
On voit donc que le clé privée est sauvegardée dans le chier .ssh/id_rsa et la clé
publique dans le chier .ssh/id_rsa.pub
4.2 Deuxième étape
Sur la machine java on va créer le fichier authorized_keys dans le répertoire .ssh et
l'onva y rajouter la clé publique de la machine zero avec un simple éditeur de
texte. On complique un peu la chose en utilisant un compte différent sur la
machine java. en effet on va utiliser le compte toto
4.3 Étape nale : la connexion
Anas Abou El Kalam Sécurité SSH
On va donc maintenant se connecter à distance sur la machine java en tapant
ssh toto@java
On obtient alors le message suivant :
Enter passphrase for key '/home/grocanar/.ssh/id_rsa' :
On rentre alors la .pass phrase. que l'on a utilisé pour .protéger. la clé privée.
5 Ne plus rentrer la pass phrase.
5.1 Problématique
Dans la manipulation décrite ci dessus on a perdu en simplicité d'utilisation. En
effet au lieu de rentrer son login et mot de passe, on dois donner son login et
sa .pass phrase. Cette opération est bien plus longue que l'opération habituelle.
Il existe un moyen de s'affranchir de ces opérations qui peuvent s'avérer
fastidieuse si on multiplie les connexions distantes : ssh-agent et sh-add
5.2 Principes
ssh-agent est un démon dont le rôle est :
. Intercepter la clé privée lorsque le programme ssh-add l'aura déchifré en
utilisant la passphrase que vous allez rentrer une et une seule fois.
. La transmettre à tous programmes dont il sera l'ancêtre et qui le lui
demandera. On verra que cette contrainte de .descendance UNIX. amène a
certaines contraintes de mise en place.
Ainsi vous n'avez plus qu'a rentrer une seule fois votre passphrase à votre
connexion initiale sur la machine et vous n'avez plus besoin de la rentrer lors de
vos connexions sur d'autres machines.
5.3 Mise en place pratique
Dans cet exemple de mise en place je prends l'exemple d'une machine Linux
utilisant une distribution RedHat 7.3 ou ultérieur avec un environnement Gnome.
Cela donne néanmoins une idée générale sur la manière de procéder.
Aller dans le menu principal symbolisé par un chapeau rouge.
Sélectionnez le menu Préférences => Préférences supplémentaires => Sessions
On obtient alors une fenêtre comme ci dessous (voir 1)
Il faut alors cliquer sur le menu Programme au démarrage.
On obtient alors la fenêtre suivante (voir 2)
Il faut alors rentrer la commande /usr/bin/ssh-add dans le champs Commande
de démarrage
et ajuster la priorité (champs ordre) afin que cette commande ait la plus
grande valeur. Une bonne valeur est 70. On obtient alors la fenêtre (voir3).
5.4 Utilisation
L'utilisation est alors très simple. A la connexion une fenêtre s'ouvre et demande
Anas Abou El Kalam Sécurité SSH
de rentrer la .passphrase. (voir 4). Une fois celle ci tapée la session se déroule
normalement et on ne demandera plus la passphrase ni de mot de passe pour
toutes les connexions sur les machines où l'on a propagé sa clé publique.
Anas Abou El Kalam Sécurité SSH
6 Le clientWindows
Putt peut être téléchargée à partir de
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Normalement, celui ci intégre plusieurs composants :
putty un émulateur terminal compatible ssh
puttygen Un générateur de clé
psftp un client ftp compatible ssh
pageant un équivalent à ssh-agent
7.1 Génération des clés
La génération des clés se fait avec puttygen.
On lance le logiciel et on obtient la fenêtre suivante (voir 5). On doit alors générer
la clé en faisant bien attention de générer une clé SSH2(DSA) de 1024 bits. On
clique alors sur Generate. On obtient alors la fenêtre suivante (voir 6).
1 / 13 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !