• Menu
  • Administration serveur
  • Wordpress
  • E-commerce
  • Outils OpenSource
  • A propos
  • Skip to main content

Le Web d'Antoine

Administration serveur - Wordpress - ecommerce

gestion-cle-ssh-debian

Gérez simplement vos clés ssh sous Debian

Lorsque l’on débute dans le domaine de l’administration serveur, une des premières tâches est la gestion des clés ssh. En effet, sans la fameuse connexion ssh sécurisée, il est quasi impossible de gérer un serveur à distance.

Dans cet article nous allons voir comment créer des clés ssh et les utiliser afin d’établir conjointement des connexions ssh et sftp.

La plupart du temps, lorsque vous louez un serveur, un mot de passe vous est attribué pour vous authentifier lors de votre première connexion. En revanche, d’autres hébergeurs que je qualifierais de plus prudents, vous demandent une clé ssh lors de la création ou mise en service de votre serveur.

Quoiqu’il en soit,  je ne peux que vous conseiller d’abandonner l’authentification à votre serveur via mot de passe. Utilisez plutôt le système de clés privée/publique pour vous connecter à votre machine (virtuelle ou dédiée).

Création de votre clé ssh

Les exemples ci-dessous sont décris sous un environnement Debian Jessie (local et serveur distant). Ces commandes sont valables pour les distributions les plus connues.

Dans un premier temps placez-vous dans le dossier .ssh de votre dossier utilisateur.

antoine@lewebdantoine:~$ cd /home/utilisateur/.ssh/

Créons les clés publiques et privées, il est possible d’utiliser l’algorithme de génération de clé DSA ou RSA (par défaut) avec l’option -t, par exemple ssh-keygen -t dsa. Pour notre exemple nous générerons la clé avec l’algorithme RSA, proposé par défaut.

antoine@lewebdantoine:~/.ssh$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/antoine/.ssh/id_rsa): cledantoine
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in cledantoine.
Your public key has been saved in cledantoine.pub.
The key fingerprint is:
6e:68:3e:86:89:d0:5c:c8:26:76:c5:ec:03:b7:29:7f antoine@lewebdantoine
The key's randomart image is:
+---[RSA 2048]----+
|    o            |
|   . =           |
| . .= o          |
|..+o.=           |
|.=..o . S        |
|. o  . E         |
| . . o+ o        |
|  . ooo.         |
|     ...         |
+-----------------+

Suite à la l’exécution de la commande ssh-keygen, il nous est demandé à la ligne 3 le nom de la clé qui est dans notre cas « cledantoine ».

Les lignes 4 et 5 concernent la création d’une phrase de passe (passphrase) qui nous permettra d’avoir une authentification bien plus forte. Attention à ne pas égarer celle-ci, sans quoi la connexion au serveur n’est plus possible. Bien que je vous le déconseille, vous pouvez ne rien entrer, ainsi la connexion à votre serveur se fera uniquement avec le couple clé publique/privé.

Les lignes 6 et 7 nous indiquent que la clé publique « cledantoine.pub » et la clé privée « cledantoine » ont été créées. Ces deux clés jouent un rôle crucial dans l’authentification, la clé privée restera sur votre poste de travail alors que la clé publique sera destinée à être copiée sur votre serveur distant.

Copie de la clé ssh sur le serveur distant

Deux cas peuvent de présenter à vous, la clé ssh est requise par votre hebergeur pour la création du serveur ou bien il vous faudra copier la clé après création du serveur.

La clé ssh vous est demandée à la création du serveur par l’hébergeur

Dans ce cas il vous faudra copier  votre clé nouvellement créée dans le champs spécifié par votre hébergeur en la copiant au préalable dans un fichier texte.

antoine@lewebdantoine:~/.ssh$ cat cledantoine copie_cle_ssh.txt

La clé ssh doit être copiée sur le serveur distant

La commande suivante permet d’effectuer cette opération automatiquement sans devoir copier manuellement votre clé sur le serveur distant.

ssh-copy-id -i ~/.ssh/votre_cle.pub utilisateur_distant@serveur_distant

Dans ce cas le mot de passe qui vous a été fourni par l’hébergeur vous sera demandé pour que le transfert de la clé se fasse sur votre serveur distant. L’opération terminée, vous êtes invités à vérifier le bon déroulement de la copie de votre clé.

Connectez-vous à votre serveur et regardez le contenu du fichier authorized_keys dans le dossier .ssh

sudo vi /home/utilisateur_distant/.ssh/authorized_keys

Vous devriez voir votre clé publique dans ce fichier. A noter que vous pouvez directement copier votre clé publique dans authorized_keys.

Connexion au serveur par clé ssh

Il est important de souligner qu’à ce stade il est toujours possible de vous authentifier par mot de passe. Pour se connecter strictement par clé ssh il vous faudra modifier le fichier /etc/ssh/sshd_config sur votre serveur distant.

PasswordAuthentication no
UsePAM no

Au cours du temps vous aurez sans doute plusieurs serveurs à gérer et par conséquence plusieurs clé à employer. Je ne vais pas m’aventurer avec l’utilisation de l’agent ssh dans cet article mais préfère vous donner les commandes afin d’utiliser une clé spécifique parmi d’autres, lors de votre authentification.

Connexion ssh

C’est la connexion qui vous permettra d’effectuer la majeure partie de vos travaux d’administration.

ssh -i ~/.ssh/cledantoine -p 22 utilisateur_distant@ip_serveur_distant

L’option -i vous permet de spécifier le chemin de votre clé privée, et l’option -p permet de préciser le port de connexion (22 par défaut).

Connexion sftp

Cette connexion va autoriser les échanges de fichiers de manière sécurisée en empruntant le tunnel ssh. Attention à ne pas confondre sftp et ftps qui nécessite un serveur ftp.

sftp -o IdentityFile=~/.ssh/cledantoine -P 22 utilisateur_distant@ip_serveur_distant

Si vous souhaitez utiliser l’option du port, pensez bien au P majuscule.

La gestion des clés ssh est primordiale pour une authentification sécurisée à votre serveur. In extenso, ce système de clé permet également de faire communiquer deux serveurs, par exemple pour l’échange de fichiers sauvegarde. Pensez bien à utiliser une phrase de passe robuste, pour cela n’hésitez pas à consulter cet article sur le logiciel opensource keepass.

Article rédigé et publié par Antoine le 20 janvier 2016

Antoine Bussière - 2015 - Tous droits réservés