Académique Documents
Professionnel Documents
Culture Documents
ADMINISTRATION UNIX
I. Introduction
SSH (Secure Shell) est un protocole qui facilite les connexions
sécurisées entre deux systèmes à l'aide d'une architecture
client/serveur et permet aux utilisateurs de se connecter à distance à des
systèmes hôte de serveurs. Toutefois, contrairement à d'autres protocoles
de communication à distance, tels que FTP ou Telnet, SSH crypte la
session de connexion et empêche ainsi tout agresseur de recueillir des
mots de passe.
SSH est conçu pour remplacer les applications de terminal plus
anciennes et moins sécurisées qui sont utilisées pour se connecter à des
hôtes distants, comme telnet, rsh ou rcp.
Une implémentation libre de SSH est OpenSSH livrée par une
grande majorité de distributions (divers Unix, Linux et MacOSX).
2 OUZAOUIT
II. Les fonctionnalités du SSH
Ssh chiffre automatiquement les données à chaque fois qu’elles sont
envoyées par un ordinateur sur le réseau. Lorsqu’elles atteignent leurs
destinations le ssh les déchiffre tout aussi automatiquement.
Le protocole ssh couvre trois aspects de la sécurité: l’authentification, le
chiffrement et l’intégrité des données transmises sur un réseau.
SSH combine cryptage asymétrique et cryptage symétrique.
3 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
Les méthodes d’authentification dans la version 2 de ssh sont: password, et
publickey. Le mécanisme d’authentification basé sur les clés publiques est
le plus fiable. Il utilise une paire de clés pour authentifier les entités en
communication.
4 OUZAOUIT
II. Les fonctionnalités du SSH
Le serveur envoie la clé publique en clair au client pour qu'il puisse crypter :
Le client génère une clé de cryptage symétrique (par exemple topsecret) qu'il crypte grâce à la
clé publique qu'il a reçue :
5 OUZAOUIT
II. Les fonctionnalités du SSH
Le client envoie la clé symétrique cryptée au serveur. Le pirate peut l'intercepter mais il ne
peut pas la décrypter car il faut pour cela la clé privée (connue seulement du serveur) :
Le serveur décrypte la clé reçue grâce à sa clé privée qu'il garde secrète:
6 OUZAOUIT
II. Les fonctionnalités du SSH
Le client et le serveur connaissent maintenant tous les deux la clé symétrique topsecret, et à
aucun moment ils ne l’envoient en clair sur le réseau !
Ils peuvent donc s'envoyer des messages cryptés de manière symétrique. Ce cryptage est plus
rapide, et il est tout aussi sûr que le cryptage asymétrique car le pirate ne connaît pas la clé !
Remarque : tout se fait automatiquement. Les utilisateurs doivent juste avoir à rentrer un login
et un mot de passe pour se connecter à la machine distante.
7 OUZAOUIT
II. Les fonctionnalités du SSH
Après échange de la clé symétrique, le client peut se logger sur le serveur : il peut donner son
login et son mot de passe pour se connecter au serveur sans craindre de se les faire voler par le
pirate !
Pour que ce soit possible, le service sshd du serveur doit contenir dans son fichier de configuration
sshd_config, le paramètre PasswordAuthentication à yes.
De même, pour le client ssh : le fichier ssh_config doit aussi avoir ce paramètre à yes.
Pour se connecter au serveur, on utilise le programme ssh fournit par openSSH.
user1@mon_poste $ ssh user1 @Serveur
The authenticity of host 'Serveur (192.168.0.1)' can't be established.
RSA key fingerprint is 33:93:84:34:59:8f:2a:d6:4a:fb:51:27:12:36:53:ac.
Are you sure you want to continue connecting (yes/no)? Yes
Warning: Permanently added 'Serveur,192.168.0.112' (RSA) to the list of known hosts.
user1@Serveur's password: <votre mot de passe>
Last login: Thu May 1 17:41:29 2005 from 192.168.0.20
Linux Serveur 2.4.24 #1 Wed Feb 11 01:01:56 CET 2004 i686 GNU/Linux
user1@Serveur:~$
8 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
9 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Opérations sur la machine du client:
Il faut tout d'abord générer une paire de clés publique/privée :
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user1/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/user1/.ssh/id_rsa.
Your public key has been saved in /home/user1/.ssh/id_rsa.pub.
The key fingerprint is:
b7:22:94:aa:8c:fb:d3:ef:53:86:df:b9:37:40:bd:4d user1@user1-laptop
L’utilitaire ssh-keygen vous demande une passphrase. C'est une phrase de passe qui va
servir à crypter la clé privée pour une meilleure sécurité. Là vous avez 2 choix :
•Soit vous tapez Entrée directement sans rien écrire, et la clé ne sera pas cryptée sur
votre machine.
•Soit vous tapez un mot de passe de votre choix, et la clé sera cryptée.
10 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Vérification de la création des 2 clés:
$cd ~/.ssh
$ ls
id_rsa id_rsa.pub known_hosts
11 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Envoie de la clé publique au serveur:
Pour assurer une communication sécurisée entre le client et le serveur, Il faut
envoyer au serveur la clé publique (id_rsa.pub) pour qu'il puisse crypter les
messages qu’il envoie au client. Au niveau du serveur, La clé publique doit être ajouté
au fichier "authorized_keys" (clés autorisées). Le serveur y garde une liste des clés
qu'il autorise à se connecter.
Le plus simple pour cela est d'utiliser la commande spéciale ssh-copy-id ou (scp).
Utilisez-la comme ceci :
le client envoie au serveur une requête d’authentification par clé asymétrique. Cette
requête contient le module de la clé à utiliser (il s’agit du long nombre contenu dans
la clé publique)
le serveur recherche une correspondance dans le fichier des clés autorisées pour ce
compte (généralement le fichier ~/.ssh/authorized_keys). S’il ne trouve rien,
l’authentification échoue et la connexion prend fin.
13 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Connexion et authentification par clé:
Dans le cas contraire, le serveur récupère la clé et note les restrictions liées à son
utilisation. Le serveur peut alors rejeter le client suivant ces restrictions. Si ce n’est pas
le cas, le processus d’authentification continue.
Le serveur génère une chaine aléatoire de 256 bits appelée un challenge et la
chiffre à l’aide de la clé publique du client. Il l’envoie ensuite au client.
Le client reçoit le challenge crypté et le décrypte à l’aide de la clé privée qu’il est
le seul à posséder. Il combine alors ce challenge avec l’identificateur de session et
génère un haché MD5 avec le résultat de cette combinaison. Il renvoie alors ce haché
au serveur
Le serveur génère le même haché MD5 avec le challenge et l’identifiant de
session. Si ce haché est identique à celui reçu du client, l’authentification est un
succès.
14 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Connexion et authentification par clé:
Cette méthode est la plus sécurisé dans ssh, effectivement, le client utilise deux
informations qu’il est le seul à connaitre : la clé privée et la passe phrase de cette clé, et
ni la clé privée ni la passe phrase n’est envoyée sur le réseau.
15 OUZAOUIT
II. Les fonctionnalités du SSH
1. Méthodes d’authentification ssh:
b. Authentification par clé publique:
Agent SSH:
A chaque fois que vous lancez ssh avec une authentification par clé publique, vous
devez ressaisir votre passe phrase d’authentification. La première fois, cela ne vous
gênera pas, mais le fait de la ressaisir peut s’avérer ennuyant. La Solution, utiliser
l’agent ssh.
Un agent ssh est un programme qui garde les clés privées en mémoire et qui fournit les
services d’authentification aux clients ssh.
Pour utiliser l’agent ssh, il faut le lancer en utilisant la commande suivante :
$ ssh-agent
Une fois lancé, l'agent vous suit dans toutes vos connexions à distance, et ainsi il est
disponible partout. Mais il faut lui donner les clés à gérer moyennant le programme ssh-
add:
$ ssh-add
16 OUZAOUIT
III. Implémentation du SSH sous Unix
1. Fichiers de configuration de OpenSSH:
OpenSSH est constitué de deux ensembles de fichiers de configuration, un
pour les programmes client (ssh, scp et sftp) et l'autre pour le service (sshd).
Les informations de configuration SSH qui s'appliquent à l'ensemble du
système sont stockées dans le répertoire /etc/ssh où figurent :
•ssh_config : Fichier de configuration client SSH pour l'ensemble du système.
•sshd_config : Fichier de configuration pour le démon sshd.
•ssh_host_dsa_key : Clé DSA privée utilisée par le démon sshd.
•ssh_host_dsa_key.pub : Clé DSA publique utilisée par le démon sshd.
•ssh_host_key : Clé RSA privée utilisée par le démon sshd pour la version 1 du
protocole SSH.
•ssh_host_key.pub : Clé RSA publique utilisée par le démon sshd pour la version 1 du
protocole SSH.
•ssh_host_rsa_key : Clé RSA privée utilisée par le démon sshd pour la version 2 du
protocole SSH.
•ssh_host_rsa_key.pub : Clé RSA publique utilisée par le démon sshd pour la version
2 du protocole SSH.
17 OUZAOUIT
III. Implémentation du SSH sous Unix
1. Fichiers de configuration de OpenSSH:
Les informations de configuration SSH spécifiques à l'utilisateur sont stockées
dans son répertoire personnel à l'intérieur du répertoire ~/.ssh/ où figurent :
•authorized_keys : Fichier contenant une liste de clés publiques autorisées pour
les serveurs. Lorsque le client se connecte à un serveur, ce dernier authentifie le
client en vérifiant sa clé publique signée qui est stockée dans ce fichier.
• id_dsa : Fichier contenant la clé DSA privée de l'utilisateur.
• id_dsa.pub : Clé DSA publique de l'utilisateur.
• id_rsa : Clé RSA privée utilisée par ssh pour la version 2 du protocole SSH.
• id_rsa.pub : Clé RSA publique utilisée par ssh pour la version 2 du protocole
SSH.
• Identity : Clé RSA privée utilisée par ssh pour la version 1 du protocole SSH.
• identity.pub : Clé RSA publique utilisée par ssh pour la version 1 du protocole
SSH.
•known_hosts : Fichier contenant les clés d'hôtes des serveurs SSH auxquels
l'utilisateur a accédé. Ce fichier est très important car il permet de garantir que le
client SSH se connecte au bon serveur SSH.
18 OUZAOUIT
III. Implémentation du SSH sous Unix
2. Démarrage de SSH:
19 OUZAOUIT
III. Implémentation du SSH sous Unix
3. Configuration d’un serveur OpenSSH:
Toute la configuration du serveur SSH est enregistrée dans le fichier
/etc/ssh/sshd_config.
Ce fichier contient un ensemble de directives toutes commentées #. En fait
celles-ci vous informent sur les valeurs par défaut, il ne faut décommenter
l'une d'entre elles que lorsque vous souhaitez en changer la valeur. Il faut être
root pour modifier la configuration du serveur.
21 OUZAOUIT
III. Implémentation du SSH sous Unix
4. Configuration d’un client OpenSSH:
Dans le cas où vous souhaitez mettre en place une authentification par clé
publique quelques manipulations supplémentaires seront nécessaires.
Le client SSH est fourni avec le paquetage OpenSSH, chaque client devra
donc installer le même paquetage que le serveur.
22 OUZAOUIT
III. Implémentation du SSH sous Unix
4. Configuration d’un client OpenSSH:
Génération des pairs des clé avec ssh-keygen
Pour utiliser l’authentification chiffrée, vous devez d’abord produire une paire de clés
personnelle, formée d’une clé privée (votre identité numérique, qui restera sur la
machine client) et une clé publique (qui sera sur la machine serveur). Le programme
ssh-keygen est conçu pour cela.
Afin de créer une paire de clés RSA pour la version 2 du protocole SSH, suivez les
étapes indiquées ci-dessous.
a. Pour créer une paire de clés RSA que vous utiliserez avec la version 2 du protocole,
entrez la commande suivante à l'invite du shell :
ssh-keygen -t rsa –b 1024
Acceptez l'emplacement par défaut du fichier, à savoir ~/.ssh/id_rsa. Entrez ensuite
une phrase d'accès différente du mot de passe de votre compte et confirmez-la en la
tapant de nouveau.
La clé publique est enregistrée dans ~/.ssh/id_rsa.pub. La clé privée quant à elle, est
enregistrée dans ~/.ssh/id_rsa. Ne divulguez jamais votre clé privée.
23 OUZAOUIT
III. Implémentation du SSH sous Unix
4. Configuration d’un client OpenSSH:
Génération des pairs des clé avec ssh-keygen
24 OUZAOUIT