Générer et utiliser des clés SSH sur Windows, Debian et macOS pour se connecter à un serveur Debian
Dans cet article, nous allons passer en revue les différentes étapes permettant de générer des clés SSH sur des systèmes d’exploitation (Windows, Debian et macOS), puis de les transférer sur un serveur Debian. Cette méthode est souvent préférée à l’utilisation de mots de passe pour des raisons de sécurité, car elle permet d’authentifier l’utilisateur sans avoir besoin de transmettre de données sensibles sur le réseau.
Rappel
Une clé SSH est une paire de clés cryptographiques utilisée pour sécuriser les connexions réseau, particulièrement entre un client et un serveur. Elle repose sur un système de cryptographie asymétrique, où la clé publique peut être partagée librement avec le serveur, tandis que la clé privée doit être protégée sur l'appareil du client. Lorsqu'une connexion est établie, la clé publique est utilisée pour chiffrer les données, et seule la clé privée correspondante peut les déchiffrer, garantissant ainsi une authentification sécurisée sans avoir à saisir de mot de passe. Les clés SSH offrent une sécurité renforcée, facilitent l'automatisation et sont particulièrement utilisées pour des connexions distantes sur des serveurs. Pour les protéger, il est recommandé d'ajouter une phrase de passe à la clé privée et de gérer soigneusement les clés publiques sur les serveurs.
Générer des clés SSH
Sur Windows
Ouvrez PowerShell et entrez la commande suivante pour générer votre clé :
ssh-keygen -t rsa -b 4096Appuyez sur Entrée pour accepter le chemin par défaut pour la clé (habituellement C:\Users\VotreNom\.ssh\id_rsa).
Optionnel : Vous pouvez entrer une passphrase pour protéger votre clé privée. Sinon, laissez vide et appuyez sur Entrée.
Ouvrez vos dossiers et vérifiez que les fichiers de clé (id_rsa et id_rsa.pub) ont été créés dans le répertoire C:\Users\VotreNom\.ssh\
Sur Debian
Ouvrez un terminal et exécutez la commande suivante
ssh-keygen -t rsa -b 4096Acceptez le chemin par défaut (/home/utilisateur/.ssh/id_rsa) en appuyant sur Entrée.
Comme sur Windows, vous pouvez choisir d'ajouter une passphrase pour renforcer la sécurité.
Vos clés seront enregistrées dans ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub.
Sur macOS
Ouvrez le Terminal et tapez la commande suivante pour générer la paire de clés :
ssh-keygen -t rsa -b 4096Appuyez sur Entrée pour accepter le chemin par défaut (/Users/utilisateur/.ssh/id_rsa).
Comme sur Windows et debian, vous pouvez choisir d'ajouter une passphrase pour renforcer la sécurité.
Vos clés seront enregistrées dans ~/.ssh/id_rsa et ~/.ssh/id_rsa.pub.
Copier la clé publique sur le serveur Debian
Sur Windows
Copier la clé publique (id_rsa.pub) vers le serveur. Pour cela, utilisez la commande ssh-copy-id ou copiez manuellement le contenu du fichier.
Ouvrez PowerShell et entrez la commande suivante pour va ajouter votre clé publique au serveur :
ssh-copy-id utilisateur@ip_du_serveurAssurez-vous que le répertoire ~/.ssh/ et le fichier authorized_keys existent sur le serveur. Si ce n'est pas le cas, créez-les.
Cette commande va ajouter votre clé publique au fichier ~/.ssh/authorized_keys du serveur.
Si ssh-copy-id n'est pas disponible, copiez manuellement le contenu de la clé publique id_rsa.pub et ajoutez-le à la fin du fichier ~/.ssh/authorized_keys sur le serveur, en utilisant une connexion SSH classique :
nano ~/.ssh/authorized_keysCollez la clé publique et enregistrez le fichier(CTRL + X).
Sur Debian
Ouvrez un terminal et utilisez cet commande pour ajouter votre clé au serveur Debian :
cat ~/.ssh/id_rsa.pub | ssh utilisateur@ip_du_serveur 'mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys'Assurez-vous que le répertoire ~/.ssh/ et le fichier authorized_keys existent sur le serveur. Si ce n'est pas le cas, créez-les.
Vérification de l'ajout de la clé.
Connectez-vous au serveur Debian pour tester si l’authentification par clé fonctionne :
ssh utilisateur@ip_du_serveurSi la connexion se fait sans demander de mot de passe, la configuration est correcte.
Sur macOS
Ouvrez un terminal et utilisez ssh-copy-id pour ajouter votre clé au serveur Debian :
ssh-copy-id utilisateur@ip_du_serveurAssurez-vous que le répertoire ~/.ssh/ et le fichier authorized_keys existent sur le serveur. Si ce n'est pas le cas, créez-les.
Si ssh-copy-id n’est pas disponible, vous pouvez aussi copier manuellement la clé publique id_rsa.pub et ajoutez-le à la fin du fichier ~/.ssh/authorized_keys sur le serveur, en utilisant une connexion SSH classique :
nano ~/.ssh/authorized_keysCollez la clé publique et enregistrez le fichier(CTRL + X).
Sécurisation de l'accès SSH
Désactivation de l'authentification par mot de passe
Une fois que vous avez vérifié que l'accès SSH par clé fonctionne, vous pouvez renforcer la sécurité en désactivant l'authentification par mot de passe.
Ouvrez le fichier de configuration SSH du serveur :
sudo nano /etc/ssh/sshd_configModifiez ou ajoutez la ligne suivante :
PasswordAuthentication noSi vous voulez pouvoir vous connecter en SSH en tant que root, vous devez activer l'accès root via SSH, modifiez ou ajoutez la ligne suivante :
PermitRootLogin prohibit-passwordRedémarrez le service SSH pour appliquer les changements :
systemctl restart sshVérification de la désactivation
Essayez de vous reconnecter au serveur en utilisant l'authentification par mot de passe. Cela devrait échouer si tout est bien configuré.
Vous savez maintenant comment utiliser les clés SSH sur un serveur Debian ; vous avez les bases nécessaires pour pouvoir les utiliser.
ainsi que sur Instagram :


