Académique Documents
Professionnel Documents
Culture Documents
!
Table des matières
Table des matières........................................................................................................................ 2
Introduction .................................................................................................................................. 4
Prérequis ...................................................................................................................................... 4
I. Installation............................................................................................................................. 6
1. Installation sur une machine cliente .............................................................................. 6
2. Installation sur un serveur Debian ................................................................................. 6
3. Les fichiers de configuration ......................................................................................... 7
4. L’authentification simple ............................................................................................... 9
5. L’authentification par clefs RSA ................................................................................. 19
#
Figure 20:Connexion à distance au compte de l’utilisateur root ................................................... 13
Figure 21Informations sur la version de l’OS................................................................................ 13
Figure 22: Fichier de configuration du serveur.............................................................................. 14
Figure 23:Blocage de l’accès à distance au compte de l’utilisateur root ....................................... 14
Figure 24: Redémarrage du service ssh ......................................................................................... 15
Figure 25: Résultat du blocage de l’accès à distance au compte root à partir de la machine W10 15
Figure 26: Résultat du blocage de l’accès à distance au compte root à partir de la machine Ubuntu
........................................................................................................................................................ 15
Figure 27: Tentative d’accès de la machine cliente W10 via Putty ............................................... 16
Figure 28: Accès de la machine cliente W10 via Putty ................................................................. 16
Figure 29: Ajout de la ligne AllowUsers dans la configuration .................................................... 17
Figure 30: Redémarrage du service ssh ......................................................................................... 17
Figure 31: Modification des droits du répertoire .ssh/ de la machine cliente ................................ 18
Figure 32: Voir les droits du répertoire .ssh/ ................................................................................. 18
Figure 33: Modification des droits de tous les fichiers dans .ssh/ de la machine cliente .............. 18
Figure 34: Voir les droits des fichiers de répertoire .ssh/ de la machine cliente ........................... 18
Figure 35: Modification des droits des fichiers dans .ssh/ de la machine cliente .......................... 19
Figure 36: Voir les droits des fichiers *.pub .................................................................................. 19
Figure 37: Création de la paire de clefs publique/privée par le client ........................................... 19
Figure 38: Modification de la passphrase de la clef privée ........................................................... 20
Figure 39: Génération d’une paire de clefs .................................................................................... 20
Figure 40: Création du fichier authorized_keys dans le répertoire .ssh/........................................ 21
Figure 41: Copie automatique de la clef publique sur le serveur .................................................. 21
Figure 42: Vérification de la copie de la clef sur le serveur .......................................................... 22
Figure 43: Redémarrage du service ssh ......................................................................................... 22
Figure 44: Ajout de la passephrase pour déchiffrer la clef privée ................................................. 23
Figure 45: Connexion sur le serveur à distance ............................................................................. 23
Figure 46: Informations sur la version de l’OS du serveur distant ................................................ 23
Figure 47: Désactivation de la méthode d’authentification par mot de passe ............................... 24
Figure 48: Redémarrage du service ssh ......................................................................................... 24
Figure 49: Lancement du programme ssh-add............................................................................... 24
Figure 50: Génération des clefs RSA............................................................................................. 25
Figure 51: Génération des clefs grâce au mouvement de la souris ................................................ 26
Figure 52: Enregistrement des clefs générées ................................................................................ 27
Figure 53: Enregistrement de la clef publique ............................................................................... 28
Figure 54: Enregistrement de la clef privée ................................................................................... 29
3
Figure 55: Modification du paramètre PasswordAuthentication ................................................... 30
Figure 56: Envoi de la clef publique au serveur ............................................................................ 30
Figure 57: Sélection de la clef privée ............................................................................................ 31
Figure 58: Choix du login par défaut ............................................................................................. 32
Figure 59: Enregistrement des paramètres dans PuTTY ............................................................... 33
Figure 60: Connexion au serveur avec la passphrase .................................................................... 34
Figure 61: Ouverture de l’emplacement du fichier ........................................................................ 34
Figure 62: Exécutable d’un programme en démarrage automatique ............................................. 35
Figure 63: Affichage de l’agent ssh Pageant ................................................................................. 35
Figure 64: L’ajout de la clef privée................................................................................................ 36
Figure 65: Mot de passe de la clef privée à renseigner .................................................................. 36
Figure 66: Menu de Pageant .......................................................................................................... 36
Figure 67: Connexion en ssh directe sans passphrase à ajouter..................................................... 37
Introduction
SSH, pour Secure Shell, est un protocole réseau qui est utilisé afin d'opérer des connexions à
distance vers des machines distantes au sein d'un réseau local ou sur Internet. Les architectures
SSH comprennent généralement un serveur SSH qui est utilisé par les clients SSH pour se
connecter à la machine distante. Pour l’implémentation, le logiciel openssh est le plus populaire et
le plus largement utilisé. SSH remplace les services réseaux non sécurisés tels que le telnet, rlogin
et rsh et ajoute de nombreuses fonctionnalités.
Prérequis
Un machine Debian 10 est utilisé comme étant notre serveur
4
Figure 1 : Informations sur la version de l’OS
Et deux clients (Ubuntu 20.04 LTS Windows 10)
En mode client ou serveur, mettre à jour la liste des dépôts de logiciels avec la commande : sudo
apt-get update
<
I. Installation
a. Sur Ubuntu
Le client est installé par défaut, sinon il suffit de l’exécuter en root avec la commande suivante :
sudo apt install openssh-client
b. Sur Windows 10
=
Figure 6: Installation de ssh sur le serveur
L’état du service peut être vérifié avec les commandes suivantes : systemctl status ssh ou
/etc/init.d/ssh status renvoient les mêmes résultats
On se connecte en tant que root avec la commande $ su – puis on renseigne le mot de passe
?
Figure 9: Répertoire et fichiers de configuration ssh
Dans la section « Host * » les paramètres sont laissés par défaut dans le fichier de configuration
client.
@
Figure 10:Fichier de configuration du client
4. L’authentification simple
Lors de l’installation basique du serveur OpenSSH, l’utilisateur root est autorisé à se connecter au
serveur directement, ce qui peut être considéré d’une certaine manière comme une faille de sécurité.
Un attaquant peut utiliser par exemple une attaque par dictionnaire pour tenter de retrouver le mot
de passe root.
A
Figure 11:Machine cliente Windows 10
!B
Figure 13:Connexion à distance au compte root
!!
Figure 17:Machine cliente Ubuntu 20.04 LTS
!#
Figure 20:Connexion à distance au compte de l’utilisateur root
Pour des raisons de sécurité, nous bloquons l’accès au compte root à distance.
Il est donc nécessaire de modifier la configuration du serveur. On décommente la ligne «
#PermitRootLogin yes »
!3
Figure 22: Fichier de configuration du serveur
Il est ensuite nécessaire de redémarrer le service ssh au niveau du serveur pour prendre en compte
les modifications.
!4
Figure 24: Redémarrage du service ssh
Figure 25: Résultat du blocage de l’accès à distance au compte root à partir de la machine W10
Figure 26: Résultat du blocage de l’accès à distance au compte root à partir de la machine Ubuntu
!<
Figure 27: Tentative d’accès de la machine cliente W10 via Putty
!=
Pour ceci il suffit de modifier le fichier de configuration /etc/ssh/sshd_config puis d’ajouter ou
modifier la ligne si elle existe déjà :
Il est ensuite nécessaire de redémarrer le service ssh au niveau du serveur pour prendre en compte
les modifications.
!?
g. Vérifier les droits des répertoires et fichiers
Pour assurer une bonne protection des répertoires de configuration et leurs fichiers contenus qu’ils
soient sur les serveurs ou sur les machines clientes, ils ne devraient pas être lisibles et utilisables
par tous.
Cela change les droits de notre répertoire personnel .ssh en 700 soit, seulement l’utilisateur peut
lire, écrire et exécuter dans ce répertoire.
Ensuite, seuls les utilisateurs devraient pouvoir lire et modifier leurs fichiers de configuration. Pour
ce faire, on lance la commande suivante :
Figure 33: Modification des droits de tous les fichiers dans .ssh/ de la machine cliente
Avec la modification, l’ensemble des fichiers du répertoire .ssh/ ont comme droit : -rw-------
Figure 34: Voir les droits des fichiers de répertoire .ssh/ de la machine cliente
Enfin, on modifie les droits des clefs publiques (*.pub) en donnant à tous les utilisateurs la
possibilité de les lire avec la commande suivante :
!@
Figure 35: Modification des droits des fichiers dans .ssh/ de la machine cliente
En lançant la commande suivante ls -lsa ~/.ssh/*.pub, l’ensemble des fichiers doivent avoir comme
droits -rw-r--r--.
NB : Si vous souhaitez par la suite modifier le mot de passe de la clé, il faudra utiliser la
commande :
!A
Figure 38: Modification de la passphrase de la clef privée
Au cas où votre machine utilise l’OS Windows, il vous faudra utiliser PuTTYgen. On peut
télécharger le logiciel à partir du lien suivant : https://www.puttygen.com/download-putty et suivre
https://www.puttygen.com/#Download_PuTTYgen_on_Windows ou
https://the.earth.li/~sgtatham/putty/0.60/htmldoc/Chapter8.html#pubkey-puttygen pour la
génération des clefs.
#B
b. La copie de la clef publique sur le serveur
Afin de pouvoir utiliser cette clé pour s’authentifier au serveur souhaité, il est nécessaire de la
copier dans les clés autorisées du compte utilisateur sur le serveur.
Il est donc nécessaire de se connecter au serveur puis de créer s’il n’existe pas, le répertoire .ssh à
la racine du répertoire utilisateur.
Dans le cas où l’accès ssh par login/mot de passe simple est désactivé, l’intervention d’un
administrateur ou d’une autre personne ayant l’autorisation de se connecter en tant que cet
utilisateur est nécessaire.
Pour les utilisateurs ayant un client SSH récent et disposant de la commande ssh-copy-id, cette
action peut être effectuée plus simplement en utilisant la commande suivante qui transfèrera la clé
automatiquement sans nécessité de copier/coller manuellement :
NB : On vous demande votre mot de passe (celui de votre compte, pas la passphrase). En fait,
vous vous connectez par mot de passe encore une fois, pour pouvoir ajouter votre clé publique sur
le serveur.
#!
On vérifie la clef copiée sur le serveur
Lors du simple ajout de clé (sans autre modifications de la configuration), il est nécessaire de
redémarrer le server openssh afin qu’il prenne en compte le nouveau client.
Se connecter !
On vous demande la phrase de passe pour déchiffrer votre clé privée. Entrez-la.
Normalement, si tout va bien, vous devriez être alors connectés au serveur.
##
Figure 44: Ajout de la passephrase pour déchiffrer la clef privée
#3
c. Désactivation de la méthode d’authentification par mot de passe
Maintenant que notre clé est installée, on peut désactiver la méthode d’authentification par mot de
passe. Il suffit d’éditer sur le serveur le fichier de configuration du serveur ssh, puis d’ajouter ou
modifier la ligne :
d. L’agent SSH
L'agent SSH est un programme qui tourne en arrière-plan en mémoire. Il retient les clés privées
pendant toute la durée de votre session.
NB : L'intérêt de l'agent SSH est qu'il ne vous demande la passphrase qu'une seule fois au début.
Ensuite, vous pouvez vous connecter plusieurs fois sur le même serveur, ou même sur plusieurs
serveurs différents, le tout sans avoir besoin de retaper votre passphrase !
#4
§ Configuration de PuTTY
Il est tout à fait possible d'utiliser l'authentification par clé avec PuTTY. Il existe une différence
entre le programme d’installation qui est téléchargeable à partir du lien suivant
https://www.puttygen.com/download-putty , et le programme principal putty.exe qu’on utilise très
souvent pour lancer une connexion en ssh par mot de passe.
Le principe est le même que sous Linux : : il faut d'abord que l'on génère une paire de clés sur le
PC du client, puis qu'on les envoie au serveur. Nous retrouverons aussi un équivalent de l'agent
SSH pour éviter d'avoir à entrer une passphrase à chaque fois.
Dans les paramètres, on peut remarquer qu’on a le choix du type de clef qu’on peut générer en
fonction de l’algorithme de chiffrement et de la taille de la clef.
On laisse les valeurs par défaut (ici RSA 2048 bits) et on clique sur « Generate » pour générer la
paire de clefs (publique et privée)
#<
Figure 51: Génération des clefs grâce au mouvement de la souris
#=
Figure 52: Enregistrement des clefs générées
La clef publique est présentée sur l’interface et visible par tous. Par contre, la clef privée doit être
secrète.
On enregistre la clef publique dans un fichier en cliquant sur « Save Private Key ». On nomme le
fichier avec l’extension .pub
#?
Figure 53: Enregistrement de la clef publique
Puis, on enregistre la clef privée dans un fichier en cliquant sur « Save Public Key ». De la même
façon que pour la clef publique, on nomme le fichier avec l’extension .ppk
#@
Figure 54: Enregistrement de la clef privée
Comme sous Linux, il faut envoyer la clé publique au serveur pour qu'il nous autorise à nous
connecter par clé.
Il n’existe pas de commande pour le faire automatiquement depuis Windows. Il va falloir ajouter
la clé à la main dans le fichier authorized_keys.
Ouvrez PuTTY et se connecter au serveur comme auparavant (en entrant votre mot de passe
habituel).
#A
Figure 55: Modification du paramètre PasswordAuthentication
Effectuez la copie avec la commande echo « ssh-rsa … » >> .ssh/authorized_keys dans l’image ci-
dessous qui nous permet de rajouter la clef publique à la fin du fichier
3B
§ Configuration de PuTTY
Sélectionnez la clef privée en se rendant sur Connexion à SSHà Auth , puis cliquez sur le bouton
Browse.
Autre recommandation : Se rendre dans Connection à Data et mettre le login de d’utilisateur dans
« Auto-login username »
3!
Figure 58: Choix du login par défaut
Enregistrez les paramètres de connexion sur la partie « Session ». A l’avenir, il faut double-cliquer
sur le nom de votre serveur dans la liste pour s’y connecter directement avec les bons paramètres.
3#
Figure 59: Enregistrement des paramètres dans PuTTY
Vous devriez voir PuTTY utiliser automatiquement votre pseudo, puis vous demander votre
passphrase. Entrez-la pour vérifier que cela fonctionne, comme sur la figure suivante.
33
Figure 60: Connexion au serveur avec la passphrase
L'agent SSH installé avec PuTTY s'appelle « Pageant ». Il est recommandé de le lancer au
démarrage de l'ordinateur automatiquement (il ne prend que 4 Mo en mémoire), en le plaçant dans
le dossier Démarrage du menu « Démarrer ».
34
Le lien ci-dessous montre comment un logiciel se lancera automatiquement à chaque démarrage
de Windows
https://www.commentcamarche.net/informatique/windows/45-lancer-automatiquement-des-
logiciels-au-demarrage-de-windows-10/
Lorsque vous lancez « Pageant », la petite icône d'un ordinateur avec un chapeau s'ajoute dans la
barre des tâches, comme sur la figure suivante.
Faites un clic droit dessus, puis cliquez sur « Add key ». On vous demande où se trouve la clé
privée (cle.ppk). Entrez ensuite la passphrase.
3<
Figure 64: L’ajout de la clef privée
Si tout cela est fait, on peut se connecter au serveur en faisant un clic droit sur l’icône, puis en
sélectionnant « Saved Sessions » (figure suivante)
3=
Figure 67: Connexion en ssh directe sans passphrase à ajouter
NB : L'agent SSH « Pageant » est pratique, il vaut mieux l'arrêter si vous devez vous absenter de
votre ordinateur un long moment et que quelqu'un risque de l'utiliser. Sinon, n'importe qui peut se
connecter à vos serveurs sans avoir à entrer de mot de passe.
Retenez bien : l'agent SSH est un compromis entre la sécurité et le côté pratique. Il retient les clés
pour vous (du moins tant que le programme tourne). Si vous êtes des utilisateurs intensifs de SSH,
cela vous fera gagner beaucoup de temps.
3?