Comment sécuriser SSH sur un VPS Linux

Par Équipe d’ingénierie ONIE · Mis à jour le 12 novembre 2026 · Lecture : 3 min

Un VPS exposé sur Internet reçoit des tentatives de connexion automatisées dès les premières minutes. Ces étapes rendent SSH beaucoup plus difficile à attaquer. Elles sont rédigées pour Ubuntu ou Debian ; si vous n'avez pas encore créé de serveur, vous pouvez louer un VPS Linux et partir d'une image propre. Gardez votre session SSH actuelle ouverte tant que vous n'avez pas testé les nouveaux réglages depuis une seconde fenêtre.

1. Créer un utilisateur normal avec sudo

adduser deploy
usermod -aG sudo deploy

2. Utiliser des clés SSH à la place des mots de passe

Sur votre propre ordinateur :

ssh-keygen -t ed25519 -C "you@example.com"
ssh-copy-id deploy@YOUR_SERVER_IP
ssh deploy@YOUR_SERVER_IP

Connectez-vous une fois avec la clé pour vérifier qu'elle fonctionne avant de désactiver les mots de passe.

3. Désactiver la connexion par mot de passe et la connexion root

Créez /etc/ssh/sshd_config.d/99-hardening.conf :

PasswordAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
MaxAuthTries 3

Vérifiez la syntaxe puis rechargez le service. Le service s'appelle ssh sur Ubuntu et Debian, et sshd sur les systèmes de la famille RHEL :

sudo sshd -t && sudo systemctl reload ssh

Ouvrez un second terminal et reconnectez-vous. Ce n'est qu'ensuite que vous pouvez fermer l'ancienne session.

4. Activer un pare-feu

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

N'ouvrez que les ports dont vous avez besoin, par exemple 80 et 443 pour un serveur web. Vous pouvez aussi restreindre SSH à votre propre adresse IP avec une règle de pare-feu dans la console cloud.

5. Bloquer les échecs répétés avec Fail2ban

sudo apt install -y fail2ban

Créez /etc/fail2ban/jail.local :

[sshd]
enabled = true
maxretry = 5
findtime = 10m
bantime = 1h
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

6. Installer automatiquement les mises à jour de sécurité

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

7. Options supplémentaires

  • Changer le port SSH réduit le bruit dans les journaux, mais ce n'est pas une mesure de sécurité à elle seule.
  • Protégez la clé privée avec une phrase de passe et conservez une sauvegarde en lieu sûr.
  • Consultez les connexions avec last et sudo journalctl -u ssh --since today.
  • Créez un instantané une fois le serveur configuré, afin de pouvoir restaurer une base saine.

Si vous êtes bloqué hors du serveur, utilisez la console web de votre panneau cloud pour vous connecter et corriger la configuration. Notre guide de protection contre les attaques DDoS présente la couche de défense suivante.

Questions fréquemment posées

Est-il sûr de désactiver la connexion root ?

Oui, à condition d'avoir d'abord créé un utilisateur sudo et vérifié que sa clé fonctionne. Vous pouvez toujours exécuter des commandes d'administration avec sudo.

Ai-je besoin de Fail2ban si j'utilise uniquement des clés ?

C'est facultatif. Avec la connexion par mot de passe désactivée, une attaque par force brute ne peut pas réussir, mais Fail2ban réduit le bruit dans les journaux et la charge.

Que faire si je perds ma clé SSH ?

Utilisez la console de votre panneau cloud pour vous connecter, ajoutez une nouvelle clé publique dans ~/.ssh/authorized_keys et supprimez l'ancienne.

Sources et pour aller plus loin

Autres guides VPS