Procédure
Pour sécuriser l'accès SSH de votre VPS LWS, il est recommandé de désactiver totalement l'authentification par mot de passe au profit d'une clé SSH, puis d'installer fail2ban. Cette configuration protège votre serveur contre les attaques par force brute et élimine les risques liés aux mots de passe interceptés ou devinés. Dans ce tutoriel, vous allez copier votre clé SSH publique, ajuster la configuration SSH pour neutraliser les réglages par défaut de cloud-init, puis installer et vérifier la protection active de fail2ban.
Ouvrez un terminal sur votre ordinateur et connectez-vous au serveur à l'aide du mot de passe root reçu dans votre e-mail de livraison. Lors de la première connexion, acceptez l'empreinte de la clé du serveur en tapant yes. Une fois connecté, quittez immédiatement la session en exécutant exit afin de revenir sur votre machine locale.
ssh root@203.0.113.10
exitDepuis votre ordinateur, utilisez la commande ssh-copy-id pour copier votre clé publique sur le serveur. Saisissez votre mot de passe root une dernière fois lorsque le terminal vous y invite. Si vous aviez déjà ajouté votre clé SSH lors de la commande ou de la réinstallation depuis le panel KVM, cette étape n'est pas nécessaire.
ssh-copy-id root@203.0.113.10Number of key(s) added: 1
Now try logging into the machine, with: "ssh 'root@203.0.113.10'"
and check to make sure that only the key(s) you wanted were added.Reconnectez-vous à votre VPS en SSH depuis votre ordinateur. La connexion doit s'établir instantanément sans réclamer le mot de passe root du serveur, confirmant que votre clé publique a bien été installée.
ssh root@203.0.113.10Listez les fichiers présents dans le répertoire /etc/ssh/sshd_config.d/ et affichez le contenu de 50-cloud-init.conf. Ce fichier active l'authentification par mot de passe. Le serveur SSH conservant la première directive rencontrée lors de la lecture des fichiers par ordre alphabétique, votre propre configuration doit obligatoirement être lue avant lui.
ls /etc/ssh/sshd_config.d/
cat /etc/ssh/sshd_config.d/50-cloud-init.confPasswordAuthentication yesOuvrez l'éditeur nano pour créer le fichier 00-cles-uniquement.conf. Le préfixe 00 garantit que ce fichier sera traité avant 50-cloud-init.conf. Inscrivez-y les directives désactivant les mots de passe et limitant l'accès root aux clés, puis sauvegardez avec Ctrl+X, confirmez avec O (ou Y selon la langue) et appuyez sur Entrée.
nano /etc/ssh/sshd_config.d/00-cles-uniquement.conf# Connexion SSH par clé uniquement
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin prohibit-passwordExécutez sshd -t pour vérifier l'absence d'erreurs de syntaxe, puis contrôlez les valeurs actives avec sshd -T. Notez que permitrootlogin affiche without-password, ce qui correspond à prohibit-password. Si tout est correct, rechargez le service SSH pour appliquer les nouveaux paramètres sans interrompre votre session.
sshd -t
sshd -T | grep -E "^(passwordauthentication|kbdinteractiveauthentication|permitrootlogin)"
systemctl reload sshpermitrootlogin without-password
passwordauthentication no
kbdinteractiveauthentication noSans fermer votre session active, ouvrez une seconde fenêtre de terminal sur votre ordinateur. Tentez d'abord une connexion en forçant le refus des clés avec l'option PubkeyAuthentication=no : le serveur doit refuser l'accès. Lancez ensuite une connexion normale : l'authentification par clé s'effectue avec succès.
ssh -o PubkeyAuthentication=no root@203.0.113.10
ssh root@203.0.113.10root@203.0.113.10: Permission denied (publickey).Depuis votre session connectée au VPS, mettez à jour la liste des dépôts Debian avec apt update, puis installez le paquet fail2ban. Sur les versions récentes de Debian, fail2ban active automatiquement la protection du service SSH dès la fin de l'installation.
apt update
apt install -y fail2banAssurez-vous que le service fail2ban est actif avec systemctl, puis interrogez la prison sshd pour confirmer que le filtrage fonctionne et surveille les connexions. Vous pouvez ensuite vous déconnecter en toute sérénité.
systemctl is-active fail2ban
fail2ban-client status sshd
exitactive
Status for the jail: sshd
|- Filter
| |- Currently failed: 1
| |- Total failed: 3
| `- Journal matches: _SYSTEMD_UNIT=ssh.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 0
`- Banned IP list:Le démon OpenSSH lit les fichiers du dossier sshd_config.d par ordre alphabétique et applique la première valeur qu'il rencontre. En utilisant le préfixe 00, vos directives sont traitées avant celles de 50-cloud-init.conf, ce qui garantit la prise en compte de l'interdiction des mots de passe.
Si vous perdez votre accès SSH, connectez-vous à votre espace client LWS et ouvrez la console KVM / VNC disponible pour votre VPS. Cette console simule un écran et un clavier physiques branchés au serveur et permet de corriger vos fichiers de configuration sans passer par SSH.
Il s'agit exactement du même paramètre dans OpenSSH. prohibit-password est la syntaxe moderne recommandée, mais la commande sshd -T affiche son équivalent historique without-password dans la liste des directives actives.
Sur les distributions récentes comme Debian 13, fail2ban configure et démarre automatiquement la prison pour le service SSH dès l'installation du paquet. Vous pouvez personnaliser les durées de bannissement ultérieurement dans un fichier jail.local si vous le souhaitez.
Posez-la à l'équipe LWS et à la communauté. Réponse publiée après modération.