La boîte à Tutoriels de Christopher PECAUD

Sécuriser l'accès SSH à un serveur Ubuntu avec une authentification clé publique/privée

Laisser un commentaire

SOMMAIRE


I INTRODUCTION
II Générer les clés à partir de PuttyGen
III Paramétrage du serveur
IV Configuration d’un accès SSH côté client Windows
V CONCLUSION

I Introduction

Dans ce document nous allons voir comment sécuriser l’accès SSH sur un serveur Ubuntu 18.04 en utilisant une authentification par clé privée/publique. Cette méthode d’authentification est plus sûre que la traditionnelle qui consiste à se connecter en utilisant des identifiants (user/mot de passe). Nous verrons dans ce document comment générer un coupe clé publique/clé privée avec Puttygen puis ensuite comment paramétrer le serveur afin qu’il accepte les connexions de ce type.

II Générer les clés à partir de PuttyGen

Avant de pouvoir générer quoique ce soit allez télécharger la dernière version de Putty à cette adresse : Voir

Une fois l’application Putty installée et ses outils annexes, il vous suffit de lancer l’application de génération de clés qui se nomme PuttyGen  :

description image

Pour générer une paire clé publique/Clé privée, cliquez sur le bouton « Generate ». Pour procéder à la génération il faut faire bouger le curseur de la souris aléatoirement dans la fenêtre de l’application. Cela va avoir pour conséquence de faire évoluer la jauge. Une fois la jauge complète la génération des clés est effective :

description image

Il suffit de sauvegarder dans un endroit sûr les deux clés en n’oubliant pas de créer une « passphrase » pour sécuriser la clé publique privée.

Une fois cette opération terminée, vous pouvez vous connecter à votre serveur Ubuntu en SSL par en utilisant la méthode plus traditionnelle tant que celui ne sera pas configuré pour accepter les connections sans mots de passe.

III Paramétrage du serveur

Dans un premier temps il faut bannir l’accès avec l’utilisateur root. Donc vous allez créer un autre utilisateur qui aura les mêmes droits que celui-ci :

Pour ce faire utilisez la commande adduser pour créer votre nom d’utilisateur dans notre exemple ce sera user1 :

$sudo adduser user1

Une fois le nouvel utilisateur créé, vous allez devoir coller la clé publique dans votre dossier utilisateur user1 dans notre exemple. Il faut que le dossier .ssh soit créé dans celui-ci. Si cela n’est pas le cas tapez la commande suivante :

$mkdir home/user1/.ssh

Dans ce dossier vous devez créer un fichier nommé authorized_keys dans lequel vous allez coller la clé privée générée par PuttyGen. Tapez la ligne de commandes suivante :

$nano home/user1/.ssh/authorized_keys

Dans lequel vous allez coller la clé générée. Bien prendre la totalité de la clé générée dans la zone « Public key for pasting into OpenSSH authorized_keys files » de la fenêtre de PuttyGen en copiant tout à partir de « ssh-rsa » mais en ne prenant pas en compte la dernière mention du type « rsa-key-yyyymmjj ».

Sauvegardez le contenu de ce fichier.

Il nous faut ensuite interdire l’accès SSH avec mots de passe.

Pour ce faire il suffit d’éditer le fichier /etc/ssh/sshd_config afin de paramétrer la propriété PasswordAuthentication à no.

description image

Pour encore plus de sécurité vous pouvez aussi désactiver l’authentification avec l’utilisateur système root en positionnant la valeur de la propriété PermitRootAuthentication à no.

Pour que les paramètres soient pris en compte, redémarrez le service ssh en tapant la ligne de commandes suivante :

$sudo service ssh restart

La configuration côté serveur est terminée.

IV Configuration d’un accès SSH côté client Windows

Maintenant que le serveur est paramétré pour autoriser un accès sécurisé sans mots de passe il va falloir configurer la session Putty permettant d’accepter ce genre de connexion. En effet nous ne pouvons plus y accéder par une authentification avec identifiants. Si vous ne paramétrez rien sur votre client la connexion est impossible et vous aurez le message suivant :

description image

Dans la barre latérale de Putty cliquez sur « Data » dans la section « Connection » et dans « Login details » mettez le nom d’utilisateur que vous avez créé dans Ubuntu. Dans notre cas il s’agit de user1.

description image

Ensuite cliquez sur « Auth ». Vous allez ajouter votre clé privée pour l’authentification. Il vous sera demandé de saisir la passphrase que vous avez renseignée lors de la génération des clés précédemment.

Il suffit ensuite d’ouvrir la connexion

IV Conclusion

Nous avons vu dans ce tutoriel comment sécuriser l’accès à un serveur tournant sous Ubuntu Server en utilisant SSH avec un couple clé publique/clé privée. Ceci nous a permis de voir comment générer cette paire à partir de l’application PuttyGen sous Windows

blog comments powered by Disqus