prendre des modifications dans le fichier sshd_config sans redémarrage du serveur


33

J'ai changé de configuration dans le fichier

/etc/ssh/sshd_config

mais n'a d'effet qu'après le redémarrage du serveur. Comment apporter des modifications sans redémarrer le serveur?


Vous pouvez utiliser sudo service ssh restartpour redémarrer le service pour prendre effet. Mais n'oubliez pas que si vous êtes connecté via SSH, votre session sera terminée.
AzkerM

Réponses:


39

Redémarrez simplement le service sshd:

sudo service sshd restart

ou:

sudo /etc/init.d/sshd restart

6
Et si je suis sur une connexion ssh?
Anwar

7
rien ... rebondir sshd est assez intelligent pour permettre aux connexions ssh existantes de continuer joyeusement sans relâche
Scott Stensland

4
Je ne recommande pas d'exécuter quoi que ce soit dans /etc/init.d directement. Utilisez la commande "service". La plupart des services s'en moquent, mais il y en a quelques-uns qui le font car ils sont affectés par les variables d'environnement. le «service» assure le nettoyage de l'environnement. Par exemple, l'exécution de "sudo" laisse la variable d'environnement HOME dans votre répertoire personnel non root.
Chris Cogdon

5
sudo service ssh restart

ne le fera pas. Vous devez redémarrer sshd, pas ssh:

sudo service sshd restart

3
Dépend de la configuration du système. Dans Lubuntu 14.04 sudo service ssh restartfonctionne très bien, alors que le sudo service sshd restartrapport "sshd: service non reconnu". Je ne sais pas pourquoi cela varie cependant ...
schulwitz

3

Il existe un moyen encore moins intrusif de le faire, sans redémarrer le service SSH.

De man sshd:

sshd relit son fichier de configuration lorsqu'il reçoit un signal de raccrochage, SIGHUP, en s'exécutant avec le nom et les options avec lesquels il a été démarré, par exemple / usr / sbin / sshd.

Vous pouvez donc utiliser une commande comme la suivante pour envoyer SIGHUP au processus du serveur SSH:

sudo kill -SIGHUP $(pgrep -f "sshd -D")

La pgrep -f "sshd -D"partie ne renverra que le PID du processus démon sshd qui écoute les nouvelles connexions, car il y a probablement d'autres PID pour chaque session active qui n'ont pas besoin du signal.


2
C'est le moyen le plus sûr ( stribika.github.io/2015/01/04/secure-secure-shell.html ) de recharger la configuration: "Soyez extrêmement prudent lorsque vous configurez SSH sur un hôte distant. Gardez toujours une session active, jamais redémarrez sshd. Au lieu de cela, vous pouvez envoyer le signal SIGHUP pour recharger la configuration sans tuer votre session. Vous pouvez être encore plus prudent en démarrant une nouvelle instance de sshd sur un port différent et en le testant. "
Adriano Lucas

Y a-t-il une différence significative avec sudo pkill -HUP sshd?
AdamKalisz

@Adam Vous souhaitez uniquement HUP le processus d'écoute, pas les clients actifs qui sont également des sshdprocessus. sudo pkill -HUP -f "sshd -D"est une alternative tentante, mais alors pkill signale son propre sudoparent puisque sa ligne de commande complète correspond à son propre modèle de recherche. Vous pouvez trouver un modèle qui ne correspond pas à lui-même ... -f "sshd -[D], mais qui obscurcit un peu les choses. Je pense que la méthode pgrep est plus facile pour les apprenants d'envelopper leur tête.
Steven K

2

En tant que contrôle racine

service --status-all | grep ssh

Je n'avais aucun sshdservice, mais j'avais un sshservice sur le serveur Ubuntu. ensuite

service ssh restart

2

Pour les systèmes Systemd - Ubuntu par défaut

sudo systemctl reload sshd.service

ou

 sudo systemctl reload sshd

ou

 sudo /bin/systemctl reload sshd.service

Pour les systèmes Sysvinit

sudo service sshd reload

ou

sudo /etc/init.d/sshd reload

0

Le rechargement peut être une meilleure alternative au redémarrage

sudo service sshd reload

sous le capot, il envoie un HUPsignal au processus démon sshd presque de la même manière que Steven K l'a déjà répondu . La différence est que cette variante utilise directement la killprocfonction au lieu de la killcommande afin d'envoyer le signal de manière encore plus précise (pour réduire les erreurs possibles d'envoi de signaux à de mauvais processus). La configuration est relue sans redémarrer / arrêter le service.

Bien sûr, il vaut la peine de savoir comment le démon SSH est appelé exactement comme d'autres l'ont expliqué.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.