Sshd
| Fiche express | |
|---|---|
| Domaine | Administration du démon serveur SSH |
| Fichier | /etc/ssh/sshd_config
|
| Service systemd | sshd (ou ssh selon distribution)
|
| Voir aussi | SSH · SSH securiser |
sshd est le démon serveur du protocole SSH (OpenSSH), celui qui écoute les connexions entrantes et les authentifie. Cette page couvre l'administration du démon lui-même — démarrage, rechargement, vérification de configuration, journalisation. Pour la présentation du protocole voir SSH, et pour les options de durcissement (`PermitRootLogin`, `AllowUsers`, authentification par clé...) voir SSH securiser.
Fichier de configuration
Le fichier principal est /etc/ssh/sshd_config (à ne pas confondre avec /etc/ssh/ssh_config, la configuration du client). Il peut inclure des fragments complémentaires :
Include /etc/ssh/sshd_config.d/*.conf
Sur les distributions récentes (Debian/Ubuntu, RHEL 8+), ce répertoire sshd_config.d/ est la manière recommandée d'ajouter des overrides sans modifier le fichier principal (à vérifier selon la version exacte de la distribution).
Tester la configuration avant de l'appliquer
Avant tout redémarrage ou rechargement, il est indispensable de valider la syntaxe — une erreur dans sshd_config peut empêcher le démon de redémarrer et couper l'accès distant :
sshd -t # teste la configuration, silencieux si tout est correct
sshd -t -f /chemin/vers/sshd_config # tester un fichier alternatif
sshd -T # affiche la configuration effective (toutes les directives résolues)
sshd -T | grep -i permitrootlogin # vérifier la valeur effective d'une directive précise
sshd -T est particulièrement utile pour vérifier ce que le démon comprend réellement d'une directive, y compris les blocs Match conditionnels.
Gestion du service via systemd
systemctl status sshd # état courant (actif, PID, dernières lignes de log)
systemctl start sshd
systemctl stop sshd
systemctl restart sshd # coupe toutes les sessions existantes gérées par ce processus
systemctl reload sshd # recharge la configuration sans couper les connexions établies
systemctl enable sshd # démarrage automatique au boot
systemctl is-enabled sshd
Le nom exact du service (sshd vs ssh) dépend de la distribution : généralement sshd sur RHEL/CentOS/Rocky, ssh sur Debian/Ubuntu (à vérifier sur le système cible avec systemctl list-units | grep ssh).
Reload vs restart
- reload envoie un
SIGHUPau processus : il relitsshd_configmais garde les connexions déjà établies actives. C'est le mode à privilégier après une modification de configuration en production. - restart arrête puis relance le processus : toute session en cours utilisant ce démon est coupée. Utile si le binaire lui-même a été mis à jour (après un
yum update openssh-serverpar exemple), un reload ne suffisant pas dans ce cas.
Bonne pratique avant un restart à distance : garder une session SSH déjà ouverte pendant le test, et valider avec sshd -t juste avant, pour ne pas se retrouver bloqué dehors si la configuration est invalide.
Journalisation
journalctl -u sshd -f # suivi en direct via systemd (distributions avec journald)
journalctl -u sshd --since today
Sur les systèmes qui journalisent aussi via syslog classique, les tentatives de connexion se retrouvent dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL/CentOS) — (à vérifier selon la configuration syslog en place).
Lancer une instance de test en avant-plan
Pour déboguer sans toucher au service en production, il est possible de lancer une instance de sshd autonome sur un port alternatif :
/usr/sbin/sshd -d -p 2222 # mode debug (verbeux), écoute sur le port 2222, avant-plan
Se connecter en parallèle avec ssh -p 2222 utilisateur@hôte pour observer en direct l'échange d'authentification.
Voir aussi
- SSH — présentation du protocole, notions de base, gestion des clés
- SSH securiser — durcissement de
sshd_config(authentification, restrictions d'accès)