Configuration de clés SSH pour s’authentifier

clés ssh public key auth workflow-2

Principe de fonctionnement d’authentification par échange de clés SSH

SSH, ou shell sécurisé, est un protocole chiffré utilisé pour administrer et communiquer avec les serveurs. Lorsque vous travaillez avec un serveur Linux, il y a de fortes chances que vous passiez le plus clair de votre temps dans une session de terminal connectée à votre serveur via SSH. Il existe différentes manières de se connecter à un serveur SSH. Cependant, nous allons nous concentrer sur la configuration des clés SSH. Les clés SSH offrent un moyen simple mais extrêmement sécurisé de se connecter à votre serveur. Pour cette raison, c’est la méthode que nous recommandons à tous les utilisateurs.

Comment fonctionnent les clés SSH?

Un serveur SSH peut authentifier les clients en utilisant différentes méthodes. Le plus fondamental est l’authentification par mot de passe, facile à utiliser, mais pas la plus sécurisée.

Bien que les mots de passe soient envoyés au serveur de manière sécuriser en SSH, ils ne sont généralement pas complexes ou suffisamment longs pour résister aux attaques répétées et persistantes. Une puissance de traitement moderne combinée à des scripts automatisés rend très difficile le recours à un compte protégé par mot de passe. Ainsi, les clés SSH s’avèrent être une alternative fiable et sécurisée.

Les paires de clés SSH sont deux clés sécurisées cryptographiquement qui peuvent être utilisées pour authentifier un client sur un serveur SSH. Chaque paire de clés est composée d’une clé publique et d’une clé privée.

La clé privée est conservée par le client et doit rester absolument secrète. Tout compromis de la clé privée permettra à un attaquant de se connecter aux serveurs configurés avec la clé publique associée sans authentification supplémentaire. Par mesure de précaution supplémentaire, la clé peut être cryptée sur disque avec une phrase secrète.

La clé publique associée peut être partagée librement sans conséquences négatives. La clé publique sera utilisée pour chiffrer les messages que seule la clé privée peut déchiffrer. Cette propriété est utilisée comme moyen d’authentification à l’aide de la paire de clés.

Lorsqu’un client tente de s’authentifier à l’aide de clés SSH, le serveur peut tester si le client est en possession de la clé privée. Si le client peut prouver qu’il possède la clé privée, une session shell est générée ou la commande demandée est exécutée.

Générez vos clés SSH

Afin de fournir une clé publique, chaque utilisateur de votre système doit en générer une s’il n’en a pas déjà. Ce processus est similaire dans tous les systèmes d’exploitation. Tout d’abord, vous devez vérifier pour vous assurer de ne pas avoir déjà une clé. Par défaut, les clés SSH d’un utilisateur sont stockées dans le sous dossier  ~/.ssh du répertoire d’accueil de cet utilisateur . Vous pouvez facilement vérifier si vous avez déjà une clé en allant dans ce répertoire et en répertoriant le contenu:

$ cd ~/.ssh
$ ls
authorized_keys2 id_rsa known_hosts
config id_rsa.pub

Votre paire de clé (privée et publique) sera composée de deux fichiers. Un dénommé  id_rsa et un fichier correspondant avec une extension .pub. Le fichier .pub est votre clé publique et l’autre fichier est votre clé privée. Si vous ne possédez pas ces fichiers (ou si vous ne possédez même pas de .ssh répertoire), vous pouvez les créer en exécutant un programme appelé ssh-keygen fourni avec le package SSH sur les systèmes Linux / Mac:

$ ssh-keygen -o
Generating public/private rsa key pair.
Enter file in which to save the key (/home/bicomm/.ssh/id_rsa):
Created directory '/home/bicomm/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/bicomm/.ssh/id_rsa.
Your public key has been saved in /home/bicomm/.ssh/id_rsa.pub.
The key fingerprint is:
d0:82:24:8e:d7:f1:bb:9b:33:63:73/92:17:e3:da:9b:e3 remy@bicomm.local

Ce processus se fait selon les étapes suivantes:

– il demande le nom du fichier a utiliser pour générer la clé ( .ssh/id_rsa),

– Un mot de passe vous est demandé deux fois si vous souhaitez en définir un lors de l’usage de la clé. Cependant, si vous utilisez un mot de passe, veillez à ajouter l’ -o option. Vous pouvez également utiliser l’ ssh-agent outil pour ne pas avoir à saisir le mot de passe à chaque fois.

Distribuez votre clé publique SSH

Maintenant, chaque utilisateur (terminal qui se connectera) doit envoyer sa clé publique à l’administrateur du serveur auquel vous voulez accéder. La clé publique sera téléchargée sur le serveur distant auquel vous souhaitez pouvoir vous connecter avec SSH. Puis, elle sera ajoutée à un fichier spécial dans le compte d’utilisateur auquel vous vous connectez ~/.ssh/authorized_keys.

Voici à quoi ressemblera un fichier contenant une clé publique

$ cat ~/.ssh/id_rsa.pubssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC9ahwKXUCTyZx+SqFZv5RPD+QTIZYpmmJ5VURAsTWK6PA/Pd/
sB5yyU2fhIQAK04t7LVfKR0Sh8D1e33PCdm7EYsowRtT0rj+pI2xXSv4h10VCmBLhD1jmqIRfbA3PmAtF11yU
ugK0h6n//9In4bQKFX1quOAuJhN0hOYfaNbcvMUE9+shxG8nVoLvInDF4V8XWdWsBMkXiUAKboguOc2hhq9
cnh1Hbqb6txHFStzeOC1bxlCtf8EvBLNx8n5fY2kQvjMlj3ZmcFXfNqJlhNSp/HtS5vvDfeqhONxD4kHwq+
ie8nAmZ0Dx2q9MqsgbJwbk2TIylNVDE91e/GdgwLIJ remy@bicomm.local

Pour une méthodologie plus approfondie sur la création d’une clé SSH sur plusieurs systèmes d’exploitation,consultez le guide GitHub sur les clés SSH.

et n »hésitez pas à consulter cette page relative à la sécurité informatique.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *