Authentification par clé publique sur un serveur SSH
03 juillet 2025 — par admin_libra
L’authentification par clé publique est une méthode sécurisée pour se connecter à un serveur SSH sans avoir à utiliser un mot de passe. Elle repose sur l’utilisation d’une paire de clés cryptographiques : une clé privée et une clé publique. Voici un guide détaillé sur la configuration et l’utilisation de cette méthode d’authentification.
Principe de l’authentification par clé publique
L’authentification par clé publique utilise une paire de clés :
Clé privée : Cette clé doit être gardée secrète et stockée de manière sécurisée sur le client.
Clé publique : Cette clé peut être partagée et est placée sur le serveur.
Lors de la connexion, le client prouve qu’il possède la clé privée correspondante à la clé publique stockée sur le serveur, permettant ainsi une authentification sécurisée.
Configuration du serveur SSH sous Linux
Installation du serveur SSH
Sur la plupart des distributions Linux, le serveur SSH peut être installé via le gestionnaire de paquets. Par exemple, sur une distribution basée sur Debian comme Ubuntu, vous pouvez utiliser la commande suivante :
# Mettre à jour la liste des paquets
sudo apt update
sudoaptinstall openssh-server
Configuration du serveur SSH
Le fichier de configuration principal du serveur SSH est généralement situé dans /etc/ssh/sshd_config. Vous pouvez le modifier pour renforcer la sécurité et permettre l’authentification par clé publique.
# Éditer le fichier de configuration
sudo nano /etc/ssh/sshd_config
Assurez-vous que les lignes suivantes sont présentes et décommentées :
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Redémarrez le service SSH pour appliquer les modifications :
# Redémarrer le service
sudo systemctl restart ssh
Génération des clés sur le client
Sous Linux et macOS
Pour générer une paire de clés sur un client Linux ou macOS, utilisez la commande suivante :
# Générer une paire de clés SSH
ssh-keygen -t rsa -b 4096
Cette commande génère une paire de clés RSA de 4096 bits. Vous serez invité à spécifier un emplacement pour sauvegarder la clé et à entrer une phrase de passe optionnelle pour protéger la clé privée.
Sous Windows
Sur Windows, vous pouvez utiliser PuTTYgen pour générer une paire de clés. Téléchargez et installez PuTTY, puis lancez PuTTYgen. Suivez les instructions pour générer une paire de clés et sauvegardez la clé privée et la clé publique.
Copie de la clé publique sur le serveur – manuellement
La clé publique est généralement stockée dans le fichier ~/.ssh/id_rsa.pub. Vous pouvez afficher son contenu avec la commande suivante :
cat ~/.ssh/id_rsa.pub
Copiez le contenu de ce fichier. Il devrait ressembler à quelque chose comme ceci :
Pour se connecter au serveur SSH, utilisez la commande suivante :
ssh user@server_ip
Si votre clé privée est protégée par une phrase de passe, vous serez invité à l’entrer.
Sous Windows
Avec PuTTY, chargez votre clé privée dans PuTTYgen, puis utilisez PuTTY pour vous connecter au serveur en spécifiant l’utilisateur et l’adresse IP du serveur.
Exemples d’implémentation et d’utilisation
Exemple 1 : Connexion depuis un client Linux
Générez une paire de clés sur le client :
# Générer une paire de clés SSH
ssh-keygen -t rsa -b 4096
Copiez la clé publique sur le serveur :
# Copier la clé publique vers le serveur distant
ssh-copy-id user@server_ip
Connectez-vous au serveur :
ssh user@server_ip
Exemple 2 : Connexion depuis un client Windows
Générez une paire de clés avec PuTTYgen.
Sauvegardez la clé privée et copiez la clé publique sur le serveur avec pscp.
Utilisez PuTTY pour vous connecter au serveur en chargeant la clé privée.
Exemple complet
Voici un exemple complet des commandes à exécuter sur le client et le serveur :
Sur le client :
# Générer une paire de clés
ssh-keygen -t rsa -b 4096
# Afficher la clé publique
cat ~/.ssh/id_rsa.pub
Sur le serveur :
# Se connecter au serveur
ssh user@server_ip
# Créer le répertoire .ssh
mkdir -p ~/.ssh
# Configurer les permissions du répertoire .ssh
chmod700 ~/.ssh
# Ajouter la clé publique dans authorized_keys
nano ~/.ssh/authorized_keys
# Configurer les permissions du fichier authorized_keys
chmod600 ~/.ssh/authorized_keys
# Déconnecter
exit
Sur le client :
# Se reconnecter au serveur
ssh user@server_ip
Bonnes pratiques de sécurité
Protégez votre clé privée : Ne partagez jamais votre clé privée et stockez-la de manière sécurisée.
Utilisez une phrase de passe : Protégez votre clé privée avec une phrase de passe pour ajouter une couche de sécurité supplémentaire.
Désactivez l’authentification par mot de passe : Une fois l’authentification par clé publique configurée, vous pouvez désactiver l’authentification par mot de passe pour renforcer la sécurité. Modifiez le fichier /etc/ssh/sshd_config et assurez-vous que la ligne suivante est présente :
PasswordAuthentication no
Mettez à jour régulièrement vos clés : Changez régulièrement vos paires de clés pour minimiser les risques de sécurité.
Conclusion
L’authentification par clé publique est une méthode robuste et sécurisée pour se connecter à un serveur SSH. En suivant les étapes décrites dans cet article, vous pouvez configurer et utiliser cette méthode d’authentification sur des clients Linux, macOS et Windows.