Le client SSH ne suffit pas pour une préparation certif crédible. Les objectifs LFCS demandent explicitement de configurer le serveur et le client OpenSSH. Ce guide couvre la partie serveur : modifier sshd_config, valider la configuration avant redémarrage, et appliquer un durcissement minimal sans se verrouiller hors du serveur.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Localiser et modifier la configuration de
sshd - Activer l'authentification par clé et réduire l'usage du mot de passe
- Empêcher la connexion root directe via SSH
- Vérifier la syntaxe avec
sshd -tavant reload - Contrôler la configuration effective avec
sshd -T - Diagnostiquer les erreurs de service SSH avec
systemctletjournalctl
Dans quel contexte ?
Section intitulée « Dans quel contexte ? »Vous configurez sshd dans des situations réelles très fréquentes :
- durcir un nouveau serveur avant mise en production ;
- migrer d'un accès mot de passe vers clé publique ;
- interdire le compte root en connexion distante ;
- ouvrir un port SSH dédié dans un environnement filtré ;
- corriger un incident "SSH refused" après changement de config.
Prérequis
Section intitulée « Prérequis »- un accès console local ou KVM/IPMI en cas d'erreur ;
- un utilisateur sudo non-root ;
- une clé SSH déjà en place côté client.
Base de configuration sshd
Section intitulée « Base de configuration sshd »Le fichier principal est généralement :
/etc/ssh/sshd_config
Directives importantes pour un socle certif :
Port 2222(optionnel selon politique) ;PasswordAuthentication no;PubkeyAuthentication yes;PermitRootLogin no.
Exemple minimal :
Port 2222PasswordAuthentication noPermitRootLogin noPubkeyAuthentication yesValidation avant application
Section intitulée « Validation avant application »Étape 1 : vérifier la syntaxe
Section intitulée « Étape 1 : vérifier la syntaxe »sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_configSi la commande ne retourne rien, la syntaxe est valide.
Étape 2 : vérifier la config effective
Section intitulée « Étape 2 : vérifier la config effective »sudo /usr/sbin/sshd -T -f /etc/ssh/sshd_config | grep -E '^(port|passwordauthentication|permitrootlogin|pubkeyauthentication) 'Exemple attendu :
port 2222permitrootlogin nopubkeyauthentication yespasswordauthentication noÉtape 3 : recharger le service
Section intitulée « Étape 3 : recharger le service »sudo systemctl reload sshd || sudo systemctl reload sshsudo systemctl status sshd --no-pager || sudo systemctl status ssh --no-pagerConservez une session SSH existante ouverte pendant le test.
Test en lab (auto-contenu)
Section intitulée « Test en lab (auto-contenu) »Les commandes ci-dessous ont été testées dans un lab local sans modifier le service hôte :
mkdir -p /tmp/sshd-labcd /tmp/sshd-labssh-keygen -t ed25519 -N '' -f ssh_host_ed25519_keyprintf '%s\n' \ 'Port 2222' \ 'ListenAddress 127.0.0.1' \ 'Protocol 2' \ 'HostKey /tmp/sshd-lab/ssh_host_ed25519_key' \ 'PidFile /tmp/sshd-lab/sshd.pid' \ 'PasswordAuthentication no' \ 'PermitRootLogin no' \ 'PubkeyAuthentication yes' \ 'AuthorizedKeysFile .ssh/authorized_keys' \ 'UsePAM no' \ 'Subsystem sftp /usr/lib/openssh/sftp-server' > sshd_config.test/usr/sbin/sshd -t -f sshd_config.test/usr/sbin/sshd -T -f sshd_config.test | grep -E '^(port|passwordauthentication|permitrootlogin|pubkeyauthentication|usepam) 'Sortie validée en lab :
port 2222usepam nopermitrootlogin nopubkeyauthentication yespasswordauthentication noDépannage rapide
Section intitulée « Dépannage rapide »| Symptôme | Cause probable | Correction |
|---|---|---|
sshd: bad configuration option | faute de frappe dans sshd_config | corriger puis relancer sshd -t |
Permission denied (publickey) | clé absente/mauvais droits | vérifier ~/.ssh/authorized_keys, chmod 700 ~/.ssh, chmod 600 ~/.ssh/authorized_keys |
Connection refused | service arrêté ou port fermé | systemctl status sshd, vérifier firewall et port |
| déconnexion après changement | mauvaise directive bloquante | revenir via console locale, corriger config |
À retenir
Section intitulée « À retenir »sshdse configure côté serveur dans/etc/ssh/sshd_config.- Validez toujours avec
sshd -tavant rechargement. - Vérifiez la config active avec
sshd -T. - La base certif : clé publique, root interdit, mot de passe réduit ou désactivé.
- Gardez un accès console de secours pour éviter le lockout.
Pour aller plus loin
Section intitulée « Pour aller plus loin »- Compétences LFCS essentielles : Vérifier les objectifs officiels réseau et accès utilisateur couverts par ce guide.