Accueil

OpenSSH Server : Installation et Sécurisation

Security
Difficulte: Beginner
3 min de lecture

Guide détaillé pour installer, configurer et sécuriser un serveur OpenSSH sur Linux.

Retour aux tutoriels

L'essentiel

  • L'authentification par clé est la mesure la plus efficace : générez la paire avec ssh-keygen -t ed25519, déployez-la avec ssh-copy-id, puis seulement passez PasswordAuthentication no et PubkeyAuthentication yes dans /etc/ssh/sshd_config — la force brute sur mot de passe devient sans objet.
  • PermitRootLogin no supprime la cible numéro un des bots : on se connecte avec un compte standard puis on passe par sudo. AllowUsers utilisateur1 utilisateur2 réduit encore la surface en n'autorisant que les comptes qui ont réellement besoin de SSH.
  • Passer de Port 22 à Port 2222 fait chuter le bruit des bots qui scannent Internet, mais ce n'est pas une mesure de sécurité suffisante à elle seule. Surtout, ouvrez le nouveau port dans le pare-feu avant de redémarrer sshd : sudo ufw allow 2222/tcp ou sudo firewall-cmd --permanent --add-port=2222/tcp suivi de --reload.
  • Testez toujours la configuration avec sudo sshd -t avant sudo systemctl restart sshd, et gardez la session en cours ouverte pendant que vous validez la nouvelle connexion depuis un second terminal. Si vous vous enfermez dehors, il ne reste que la console de l'hébergeur (KVM/IPMI) ou le mode rescue.
  • Sauvegardez /etc/ssh/sshd_config avec sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak avant toute modification, et notez que le service s'appelle ssh sur Debian/Ubuntu et sshd sur CentOS/RHEL ; systemctl enable garantit son démarrage au boot.
Qu'est-ce qu'OpenSSH ?
OpenSSH (Open Secure Shell) est une suite d'outils de connectivité réseau sécurisée qui fournit un remplacement chiffré pour des protocoles comme Telnet et FTP. Le composant serveur, sshd, permet de se connecter à distance à une machine pour y exécuter des commandes de manière sécurisée.

Prérequis

  • Une distribution Linux (Ubuntu, Debian, CentOS, etc.).
  • Accès root ou privilèges sudo.

Étape 1 : Installation du serveur OpenSSH

Sur de nombreuses distributions serveur, OpenSSH est déjà installé. Vous pouvez le vérifier avec systemctl status sshd.

Si ce n'est pas le cas, installez-le :

# Sur Debian / Ubuntu
sudo apt-get update
sudo apt-get install -y openssh-server

# Sur CentOS / RHEL
sudo yum install -y openssh-server

Étape 2 : Gérer le service SSH

Une fois installé, le service (nommé ssh ou sshd selon la distribution) devrait démarrer automatiquement.

# Démarrer le service (si nécessaire)
sudo systemctl start sshd

# Activer le service au démarrage du système
sudo systemctl enable sshd

# Vérifier le statut
sudo systemctl status sshd

Étape 3 : Configuration et Sécurisation (Hardening)

La configuration par défaut est fonctionnelle, mais pas optimale en termes de sécurité. Le fichier de configuration principal est /etc/ssh/sshd_config. Sauvegardez-le avant de le modifier.

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo nano /etc/ssh/sshd_config

Voici les modifications les plus importantes à considérer :

Désactiver l'accès root

Il est fortement recommandé de ne pas autoriser la connexion directe de l'utilisateur root. Connectez-vous d'abord avec un utilisateur standard, puis utilisez sudo.

PermitRootLogin no

Utiliser l'authentification par clé uniquement

C'est la mesure de sécurité la plus efficace. Elle désactive la connexion par mot de passe, rendant les attaques par force brute impossibles. Assurez-vous d'avoir configuré votre clé SSH avant d'activer cette option !

PasswordAuthentication no
PubkeyAuthentication yes

Changer le port par défaut

Changer le port par défaut (22) pour un autre (ex: 2222) peut réduire considérablement le "bruit" des bots qui scannent le port 22.

Port 2222

Attention : Si vous changez le port, n'oubliez pas de l'autoriser dans votre pare-feu !

Limiter les utilisateurs

Si seuls quelques utilisateurs ont besoin d'un accès SSH, vous pouvez les spécifier explicitement.

AllowUsers utilisateur1 utilisateur2

Étape 4 : Appliquer la nouvelle configuration

Après avoir modifié le fichier sshd_config, testez la syntaxe et redémarrez le service.

# Tester la syntaxe du fichier de configuration
sudo sshd -t

# Si aucune erreur, redémarrer le service
sudo systemctl restart sshd
Connexion sécurisée !
Votre serveur SSH est maintenant configuré avec des bases de sécurité solides.

Étape 5 : Configurer le pare-feu

N'oubliez pas d'autoriser votre port SSH (le nouveau si vous l'avez changé) dans votre pare-feu.

# Pour UFW (port 2222)
sudo ufw allow 2222/tcp
sudo ufw reload

# Pour firewalld (port 2222)
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
Ne vous enfermez pas dehors !
Lorsque vous modifiez la configuration SSH, gardez toujours votre session actuelle ouverte. Ouvrez une nouvelle fenêtre de terminal pour tester la connexion avec les nouveaux paramètres. Si la nouvelle connexion échoue, vous pouvez corriger l'erreur dans votre session initiale. Si vous fermez votre session après une mauvaise configuration, vous pourriez ne plus pouvoir vous reconnecter !

Conclusion

La configuration correcte et la sécurisation du serveur OpenSSH sont fondamentales pour l'administration de n'importe quel serveur Linux. En désactivant l'accès root et en privilégiant l'authentification par clé, vous éliminez la grande majorité des risques d'attaques automatisées.

MR

Écrit par

Morgann Riu

Expert en cybersécurité et administration Linux. Je partage mes connaissances à travers des tutoriels gratuits et des formations pour aider les administrateurs systèmes et développeurs à sécuriser leurs infrastructures.

Questions fréquentes

Comment sécuriser un serveur SSH ?
Les mesures essentielles sont : desactiver l'accès root (PermitRootLogin no), utiliser l'authentification par clé publique au lieu des mots de passe (PasswordAuthentication no), changer le port par défaut, et limiter les utilisateurs autorises avec AllowUsers. Combinez avec Fail2Ban pour une protection optimale.
Comment générer une paire de clés SSH ?
Utilisez la commande ssh-keygen -t ed25519 -C "[email protected]" sur votre machine locale. Cela cree une clé privee (id_ed25519) et une clé publique (id_ed25519.pub). Copiez la clé publique sur le serveur avec ssh-copy-id utilisateur@serveur.
Pourquoi changer le port SSH par défaut ?
Le port 22 est constamment cible par des bots qui scannent automatiquement Internet a la recherche de serveurs SSH. Changer le port (ex: 2222) reduit considerablement le bruit dans les logs et les tentatives de connexion automatisees, même si ce n'est pas une mesure de sécurité suffisante seule.
Que faire si je suis verrouille hors de mon serveur SSH ?
Avant de modifier sshd_config, testez toujours la syntaxe avec sudo sshd -t. Gardez une session SSH ouverte pendant les modifications. En dernier recours, utilisez la console de votre hebergeur (KVM/IPMI) ou le mode rescue pour corriger la configuration.

Partager ce tutoriel

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

Recommandé pour vous

Article de fond sur le sujet

Checklist Sécurité Linux

30 points essentiels pour sécuriser un serveur Linux. Recevez aussi les nouveaux tutoriels par email.

Pas de spam. Désabonnement en 1 clic.