Durcir l'accès SSH : désactiver les mots de passe et imposer les clés

Dès qu'un serveur Linux est connecté à Internet avec le port 22 ouvert, il subit des milliers de tentatives de connexion par force brute chaque jour. Des botnets testent en boucle des dictionnaires de mots de passe courants sur les comptes `root`, `admin` ou `ubuntu`. Laisser l'authentification par mot de passe activée sur SSH constitue une vulnérabilité majeure qu'il est impératif de corriger dès le provisionnement de la machine.
Passer aux clés cryptographiques Ed25519
L'authentification par paire de clés asymétriques est infiniment plus robuste qu'un mot de passe. Aujourd'hui, l'algorithme recommandé est `Ed25519` : il offre un niveau de sécurité supérieur à RSA 4096 tout en générant des clés plus courtes et plus rapides. Protégez toujours votre clé privée par une phrase de passe (passphrase) solide, ou mieux, stockez-la sur un jeton matériel de type YubiKey.
# Générer une clé SSH moderne Ed25519
ssh-keygen -t ed25519 -C "prenom.nom@owl-systems.com"
# Copier la clé publique sur le serveur cible
ssh-copy-id -i ~/.ssh/id_ed25519.pub utilisateur@serveurVerrouiller la configuration du démon sshd
Une fois que vous avez vérifié que votre connexion par clé fonctionne parfaitement (gardez toujours une session SSH ouverte en secours pendant la manipulation), éditez `/etc/ssh/sshd_config` pour interdire formellement la connexion directe en `root` et désactiver l'authentification par mot de passe. Vous pouvez également restreindre l'accès à une liste blanche d'utilisateurs via la directive `AllowUsers`.
# Extrait de /etc/ssh/sshd_config
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
AllowUsers admin-owl deployValidez toujours votre configuration avec `sshd -t` avant de redémarrer le service SSH, sous peine de vous verrouiller hors de votre propre serveur.
Lire la suite

