Comment configurer l’authentification sans mot de passe SSH sur RHEL 9
Abréviation de Secure Shell, SSH est un protocole réseau sécurisé qui crypte le trafic entre deux points de terminaison. Il permet aux utilisateurs de se connecter et/ou de transférer des fichiers en toute sécurité sur un réseau.
SSH est principalement utilisé par les administrateurs réseau et système pour accéder et gérer en toute sécurité des ressources distantes telles que des serveurs et des périphériques réseau sur un réseau. Il utilise des méthodes de cryptage puissantes telles que AES et des algorithmes de hachage tels que SHA-2 et ECDSA pour crypter le trafic échangé entre un client et un système distant.
SSH implémente deux méthodes d’authentification ; l’authentification par mot de passe et l’authentification à clé publique. Ce dernier est plus préféré car il offre une meilleure sécurité grâce à l’authentification par clé publique qui protège le système contre les attaques par force brute.
Dans cet esprit, nous allons vous montrer comment vous pouvez configurer l’authentification basée sur une clé SSH sur RHEL 9.
Configuration du laboratoire d’essai
Voici à quoi ressemble notre configuration
- Un système Linux/UNIX (basé sur Ubuntu ou RHEL) sur lequel nous allons générer la paire de clés. Pour ce guide, j’utilise la distribution Ubuntu.
- Une instance de RHEL 9 (ce cloud peut être un VPS sur site ou dans le cloud).
Étape 1 : Générer la paire de clés SSH ECDSA
Accédez à votre système Linux et générez la paire de clés SSH comme suit. Dans ce guide, nous allons générer la paire de clés à l’aide de l’algorithme ECDSA qui offre un meilleur cryptage et une meilleure sécurité.
Par conséquent, pour générer la paire de clés ECDSA, exécutez la commande :
$ ssh-keygen -t ecdsa
La commande vous guidera à travers une série d’invites.
Par défaut, la paire de clés est enregistrée dans le répertoire personnel de l’utilisateur à l’intérieur du répertoire ~/.ssh. Vous pouvez l’accepter comme destination de la paire de touches SSH en appuyant sur ENTER sur le clavier, sinon, vous pouvez spécifier votre chemin préféré. Dans ce guide, nous avons décidé d’utiliser le chemin par défaut.
Ensuite, vous serez invité à fournir une phrase de passe. Il s’agit essentiellement d’un mot de passe que vous devrez fournir lors de l’établissement d’une connexion avec le système RHEL 9 distant. Il fournit une couche de protection supplémentaire en plus du cryptage offert par les clés SSH.
Toutefois, si vous prévoyez d’automatiser les processus via la protection SSH ou de configurer l’authentification sans mot de passe, il est recommandé de laisser ce champ vide. Et par conséquent, nous laisserons ce vide en appuyant à nouveau sur ENTER.
Vous trouverez ci-dessous le résultat de l’exécution de la commande.
Vous pouvez jeter un coup d’œil à la paire de clés SSH à l’aide de la commande ls comme indiqué.
$ ls -l ~/.ssh
La id_ecdsa est la clé privée tandis que id_ecdsa.pub est la clé publique. La clé privée doit toujours rester secrète et ne doit pas être partagée ou divulguée à quiconque. D’autre part, vous êtes libre de partager le public avec n’importe quel système distant auquel vous souhaitez vous connecter.
Étape 2 : Copier la clé SSH publique vers RHEL 9 distant
L’étape suivante consiste à copier la clé publique dans l’instance RHEL 9 distante. Vous pouvez le faire manuellement ou en utilisant l’outil de ligne de commande ssh-copy-id. Comme ce dernier est beaucoup plus facile et plus pratique à utiliser, appelez-le en utilisant la syntaxe suivante.
$ ssh-copy-id user@rhel-9-server-IP
Dans notre cas, la commande sera la suivante où tecmint est l’utilisateur de connexion régulier et 192.168.254.129 est l’adresse IP de l’utilisateur distant.
$ ssh-copy-id [email
Tapez yes pour continuer à vous connecter. Fournissez ensuite le mot de passe de l’utilisateur distant et appuyez sur ENTRÉE.
La clé publique sera copiée dans le fichier authorized_keys dans le répertoire ~/.ssh du répertoire personnel de l’utilisateur distant. Une fois la clé copiée, vous pouvez vous connecter à l’instance RHEL 9 distante à l’aide de l’authentification par clé publique.
REMARQUE : Dans RHEL 9, la connexion racine via SSH est désactivée ou refusée par défaut. C’est pour de bonnes raisons : cela empêche un attaquant de se connecter en utilisant le compte root qui lui accordera tous les privilèges sur le système. Par conséquent, la copie de la clé publique dans le système RHEL en tant que root échouera.
Activer la connexion racine dans RHEL 9
Si vous devez vous connecter en tant qu’utilisateur root, vous devez modifier la configuration SSH par défaut comme suit.
$ sudo vim /etc/ssh/sshd_config
Ensuite, définissez l’attribut PermitRootLogin sur yes, enregistrez les modifications et quittez le fichier.
Pour appliquer les modifications apportées, redémarrez le service SSH.
$ sudo systemctl restart ssh
Étape 3 : Vérifier l’authentification par clé publique SSH
Confirmons maintenant l’authentification par clé publique. Pour ce faire, connectez-vous comme suit.
$ ssh [email
Cette fois-ci, vous ne serez pas invité à entrer un mot de passe et vous passerez directement à l’interpréteur de commandes RHEL 9 distant, comme illustré. Vous pouvez également vérifier la présence du fichier authorized_keys comme mentionné précédemment.
$ ls -l ~/.ssh
Vous pouvez également afficher le fichier de clé publique cryptographique à l’aide de la commande cat.
$ cat ~/.ssh/authorized_keys
Sur le bureau Linux sur lequel nous avons généré les clés SSH, un fichier appelé known_hosts est généré dans le répertoire ~/.ssh. Celui-ci contient l’empreinte digitale de tous les serveurs distants auxquels le système s’est connecté.
Dans ce guide, nous avons réussi à configurer l’authentification basée sur une clé SSH sur RHEL 9. Vos commentaires sont les bienvenus.





