Sécuriser SSH avec l'authentification par clé

L'authentification par mot de passe est vulnérable aux attaques par force brute. L'utilisation de clés cryptographiques (SSH Keys) est recommandée pour tous les serveurs, car elles sont quasi impossibles à pirater.

Pourquoi Ed25519 ? Dans ce guide, nous utilisons l'algorithme Ed25519. Il est plus sécurisé et beaucoup plus rapide que l'ancien standard RSA.

1. Générer une paire de clés (Sur votre PC)

Ouvrez un terminal sur votre ordinateur local (votre PC, pas le serveur) et tapez la commande suivante :

ssh-keygen -t ed25519 -C "votre@email.com"

Appuyez sur Entrée pour valider l'emplacement par défaut. Vous pouvez définir une passphrase (mot de passe pour déverrouiller la clé) pour une sécurité maximale.

2. Envoyer la clé publique sur le serveur

Il faut maintenant transmettre votre "cadenas" (clé publique) au serveur. Remplacez user et ip-serveur par vos informations :

ssh-copy-id user@192.168.1.50

Le mot de passe de l'utilisateur vous sera demandé une dernière fois pour copier la clé.

3. Désactiver l'authentification par mot de passe

Une fois que vous avez vérifié que vous pouvez vous connecter sans mot de passe, il faut verrouiller la porte.

Risque de blocage : Avant de faire cette modification, ouvrez un deuxième terminal et connectez-vous au serveur pour vérifier que la clé fonctionne bien. Si vous désactivez les mots de passe et que la clé est mal configurée, vous serez enfermé dehors !

Modifiez la configuration SSH sur le serveur :

sudo nano /etc/ssh/sshd_config

Trouvez et modifiez (ou ajoutez) ces lignes :

# Désactive l'authentification par mot de passe classique
PasswordAuthentication no

# Empêche root de se connecter (sauf avec une clé, mais 'no' est plus sûr)
PermitRootLogin prohibit-password

4. Redémarrer SSH

Appliquez la nouvelle politique de sécurité :

sudo systemctl restart ssh