Comment sécuriser et configurer SSH sur Linux ?

Le protocole SSH (Secure Shell) est indispensable pour tout administrateur système. Il permet de prendre la main à distance sur une machine de façon sécurisée et chiffrée.

Note de version : Ce tutoriel est réalisé sous Debian 12 mais les commandes fonctionnent à l'identique sur Ubuntu et CentOS (avec yum/dnf).

2. Installation du service OpenSSH

Sur la plupart des distributions, le client est installé par défaut, mais pas le serveur. Pour l'installer, ouvrez votre terminal :

sudo apt update
sudo apt install openssh-server -y

Une fois installé, vérifiez que le service tourne bien :

systemctl status ssh

3. Configuration du fichier sshd_config

Le fichier de configuration principal se trouve dans /etc/ssh/sshd_config. C'est ici que tout se joue.

Sauvegarde obligatoire : Avant de modifier ce fichier, faites toujours une copie de sécurité :
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
Une erreur de syntaxe ici peut vous couper l'accès au serveur !

1. Changer le port par défaut

Par défaut, SSH écoute sur le port 22. Pour éviter les robots scanneurs et réduire les logs de tentatives d'intrusion, changez ce port.

# Trouvez la ligne :
#Port 22

# Remplacez par (choisissez un port entre 1024 et 65535) :
Port 2024

2. Interdire le Root

Il est crucial d'interdire la connexion directe en tant que "root". Vous devez vous connecter avec un utilisateur normal, puis passer root via su ou sudo.

# Trouvez PermitRootLogin et mettez-le sur no
PermitRootLogin no
Appliquer les changements : Après chaque modification du fichier de configuration, vous devez redémarrer le service pour que cela prenne effet :
sudo systemctl restart ssh