Introduction
Dans ce défi, vous allez mettre en place l'authentification par clé pour SSH, une méthode bien plus robuste que l'utilisation classique de mots de passe. Vous devrez générer une paire de clés (publique et privée), autoriser la clé publique sur le serveur et configurer le service SSH pour permettre les connexions via ce mécanisme. Une fois terminé, vous pourrez vous connecter au serveur SSH sans saisir de mot de passe, alliant ainsi sécurité renforcée et confort d'utilisation.
Générer une paire de clés publique-privée
La première étape consiste à créer une paire de clés cryptographiques. Cette paire se compose d'une clé privée, que vous devez impérativement garder secrète, et d'une clé publique, que vous déposerez sur le serveur pour autoriser l'accès.
Tâches
- Générer une nouvelle paire de clés RSA (publique et privée) à l'aide de la commande
ssh-keygen.
Exigences
- Basculez sur le compte
testuseravant de générer la paire de clés. - Générez la paire de clés en tant qu'utilisateur
testuser. - Utilisez l'emplacement de fichier par défaut lorsqu'il vous sera demandé (
/home/testuser/.ssh/id_rsa). - Ne définissez pas de phrase de passe (passphrase) pour la clé privée (appuyez sur Entrée lors de la demande).
Pour commencer
Tout d'abord, connectez-vous au compte testuser :
su - testuser
## Password: testuser123
Exemple
Après avoir généré la paire de clés, vous pouvez lister le contenu du répertoire ~/.ssh pour visualiser vos nouvelles clés.
$ ls -l ~/.ssh
total 8
-rw------- 1 testuser testuser 3401 Aug 19 03:49 id_rsa
-rw-r--r-- 1 testuser testuser 759 Aug 19 03:49 id_rsa.pub
Le fichier id_rsa correspond à votre clé privée, et id_rsa.pub à votre clé publique.
Autoriser la clé publique et configurer le serveur SSH
Maintenant que vous possédez une paire de clés, vous devez configurer le serveur. Cela implique deux actions principales : ajouter votre clé publique à la liste des clés autorisées et s'assurer que le service SSH est paramétré pour accepter l'authentification par clé.
Prérequis
Assurez-vous d'être toujours connecté avec le compte testuser. Si ce n'est pas le cas, basculez dessus :
su - testuser
## Password: testuser123
Tâches
- Copier votre clé publique dans le fichier
~/.ssh/authorized_keys. - Définir les permissions de fichier appropriées pour
~/.ssh/authorized_keys. - Modifier le fichier de configuration du serveur SSH (
/etc/ssh/sshd_config) pour activer l'authentification par clé publique. - Recharger le service SSH pour appliquer les modifications de configuration.
Exigences
- Le fichier
~/.ssh/authorized_keysdoit être créé et contenir le contenu de votre clé publique (~/.ssh/id_rsa.pub). - Les permissions pour
~/.ssh/authorized_keysdoivent être fixées à600. - Dans le fichier
/etc/ssh/sshd_config, le paramètrePubkeyAuthenticationdoit être décommenté et réglé suryes. - La configuration du service SSH doit être rechargée en utilisant la commande
sudo pkill -HUP sshd.
Conseils
- Vous pouvez utiliser la commande
catavec une redirection de sortie (>>) pour ajouter la clé au fichierauthorized_keys. - Utilisez la commande
chmodpour définir les permissions du fichier. - L'utilisateur
testuserdispose des privilègessudopour modifier/etc/ssh/sshd_configet recharger le servicesshd. - Comme
systemctln'est pas disponible dans cet environnement de conteneur, utilisezpkillpour envoyer un signalHUPau processussshd, ce qui le forcera à recharger sa configuration.
Exemple
Une fois ces étapes terminées, vous devriez pouvoir vous connecter à localhost via votre clé SSH sans qu'un mot de passe ne vous soit demandé.
$ ssh testuser@localhost "echo Login successful"
Login successful
Résumé
Au cours de ce défi, vous avez appris à renforcer la sécurité de SSH en configurant l'authentification par clé. Vous avez généré une paire de clés publique-privée, autorisé la clé publique sur le serveur en l'ajoutant au fichier authorized_keys, et modifié la configuration du serveur SSH pour activer cette méthode d'authentification sécurisée. En réussissant ce défi, vous avez acquis une compétence fondamentale pour la gestion sécurisée des systèmes distants.



