Clé SSH

Une clé SSH est en réalité une bi-clé (un couple clé publique et clé privée) permettant de renforcer la sécurité d’une connexion utilisant le protocole SSH (à condition bien sûr de respecter quelques règles de base).

L’idée de base est qu’on chiffre la connexion à l’aide de la bi-clé, la clé publique étant sur la machine cible, la clé privée étant chez l’utilisateur (ou la machine source éventuellement).

Principe

L’idée de ce type d’authentification est de ne pas faire circuler de secret directement pour l’établissement de la connexion (tel que le couple utilisateur/mot de passe). Ainsi, le mot de passe ne peut pas être intercepté lors de la communication !

Nous utiliserons donc une bi-clé. Pour se connecter sur un serveur (machine 2) avec une identité donnée, il faut (il suffit) d’associer la clé publique à l’identité voulue sur le serveur, et de prouver qu’on est en possession de la clé privée correspondante.

Pour établir la connexion, les deux machines qui parlent ensemble (la machine 1 de l’utilisateur, et la machine 2 où l’on souhaite se connecter de façon sécurisée) vont s’envoyer des messages chiffrés grâce à cette bi-clé. Toute la subtilité revient dans le mécanisme d’échange sécurisé entre les deux machines,

Pour envoyer des éléments chiffrés lors de l’échange, l’utilisateur sur la machine 1 doit donc utiliser sa clé privée, qu’il vaut mieux bien sûr protéger par une passphrase (il faut qu’elle soit protégée en accès afin que tout le monde ne puisse pas lire cette clé). La capacité que l’on a d’utiliser cette clé privée permet donc de prouver qu’on est bien l’utilisateur correspondant à la clé publique, ce qui assure l’accès à la machine 2, avec l’identité à laquelle on a associée la clé publique.

En pratique

Création de la bi-clé

La première étape est de construire la bi-clé, et différents outils le permettent.

ssh-keygen

Tout en ligne de commande. Il y a tout de même une astuce si vous souhaitez ensuite vous connecter à partir de PuTTY sous Windows (cf ci-dessous).

PuTTYgen

Très pratique sous Windows.

Installation de la clé publique

La clé publique doit être positionnée dans un fichier spécial, spécifique à l’identité demandée sur le serveur cible. Si vous souhaitez utiliser le mode de connexion par clé SSH pour l’utilisateur root, il faudra donc installer la clé publique dans le répertoire utilisateur de root (qui est en général /root). Si vous souhaitez utiliser une clé pour un utilisateur user, il faudra installer la clé publique dans le répertoire de l’utilisateur user (qui est en général de la forme /home/user).

Une fois dans le répertoire de l’utilisateur voulu sur la machine cible, il faut aller dans le répertoire .ssh puis modifier le fichier authorized_key (il peut y avoir des variantes, selon les configurations).

machine2$ vi /home/user/.ssh/authorized_key

Ce fichier contient les clés publiques autorisées pour cet utilisateur, au format ssh-rsa (ou ssh-dsa). Par exemple :

ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQEAjMMXnPG6n5j39K924xSAdsxQ6KD0QS55sdw+
s/AB+EkfNJ4l5rWAesm1KhyjsTTb399lOAhDr26qmHt4Zt8yXZzfuwWA+MQI6QL0
PwR2gL6B9F7ogJtqqTmPiXTXu8fTLvzFYW+1VejHfSNBEBuE0Td5R4LjEXcmxorf
vrODeIzQaz5wk2anXaCjRVBiiPi69l4n8YCHyqVPcuiHBxRxAfQMjLpo2RYL6ofb
ZzaxHnQfvfs0h+YntFXDTVL3sMuU8zhyGrGdfI9MpYymDb8Y3hd/4MAUhUrgtg57
88Pbp/xfX79b+qB4QRjnvNLTLi4biPKqU1pbYlvkuhx/aO36qQ==

Installation et utilisation de la clé privée

Connexion sous Linux

La connexion se fait en ajoutant quelques paramètres à la commande ssh.

Connexion sous Windows

PuTTy fait sous Windows un petit caprice au sens où il va demander un format particulier pour la clé privée.

Sources

Voir également