Sshd

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
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 SIGHUP au processus : il relit sshd_config mais 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-server par 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)