← Toutes les règles
SOCLE-CLD-SSH-009// SSHmoyenneruntime effectif

Interdire la connexion SSH root par mot de passe (non sécurisé)

Exige PermitRootLogin prohibit-password afin que root ne puisse se connecter en SSH qu'avec une clé, jamais avec un mot de passe.

Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04

Pourquoi cette règle

C'est l'alternative plus faible, orientée compatibilité, à la désactivation complète du SSH root : prohibit-password autorise encore la connexion root directe mais uniquement par clé publique (ou autre authentification non interactive), bloquant les connexions par mot de passe. Cela retire le mot de passe de root de la surface de force brute en ligne tout en conservant l'automatisation par clé qui a légitimement besoin de root. Préférez PermitRootLogin no lorsque c'est opérationnellement possible.

Ce que vérifie Pavois

Pavois lit la valeur effective via sshd -T, après tous les Include, drop-ins de /etc/ssh/sshd_config.d/ et blocs Match. La distinction entre no, prohibit-password et yes n'est fiable que depuis la sortie résolue ; une lecture de /etc/ssh/sshd_config pourrait être surchargée par un drop-in ultérieur.

describe command('sshd -T') do
  its('stdout') { should match(/^permitrootlogin\s+(prohibit\-password|without\-password|no)$/i) }
end

Comment vérifier qu’elle est appliquée

Exécutez sshd -T | grep -i '^permitrootlogin'. La sortie attendue est permitrootlogin prohibit-password.

Inspecter et investiguer

Les tentatives de connexion root sont journalisées dans /var/log/secure ou via journalctl -u sshd (famille RHEL) ; une tentative par mot de passe pour root est rejetée et apparaît comme une ligne d'échec d'authentification.

Remédiation

Pas de remédiation automatique pour cette règle, à appliquer manuellement selon la norme.

Impact & précautions

Avant d'appliquer, assurez-vous que root dispose d'une clé SSH autorisée (/root/.ssh/authorized_keys) si un flux nécessite le SSH root, ou qu'un compte admin avec sudo existe, sinon vous risquez de couper le seul accès root. Testez une deuxième session SSH avant de fermer la session courante. Notez que cela autorise toujours la connexion root directe par clé, donc c'est plus faible que PermitRootLogin no ; l'automatisation root par mot de passe seul cassera et devra passer aux clés.

Sources & références