Comment puis-je faire pour que le serveur ssh relise son fichier de configuration (/etc/sshd_config
), sans tuer les connexions ssh existantes?
ÉDITION: Si j'exécute kill -HUP
je tue la connexion.
Comment puis-je faire pour que le serveur ssh relise son fichier de configuration (/etc/sshd_config
), sans tuer les connexions ssh existantes?
ÉDITION: Si j'exécute kill -HUP
je tue la connexion.
Sshd ne "re-lit" pas son fichier de configuration, il redémarre lui-même (voir man sshd(8)), cependant, il ne devrait pas tuer les processus enfants/connections si vous envoyez un SIGHUP au PARENT de tous. C'est lorsque vous parlez de sshd qui se lie au port 22, comme c'est "habituel" avec Linux/FreeBSD/etc. [il y a des exceptions et des raisons d'administration système pour suivre la voie de MacOSX]
CEPENDANT MacOSX a launchd qui écoute et gère le port 22 (de ma machine 10.10.4) :
BlackYos:~ hvisage$ sudo lsof -i :22
Password:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
launchd 1 root 57u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd 1 root 58u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
launchd 1 root 62u IPv6 0xdb59a664c78cd671 0t0 TCP *:ssh (LISTEN)
launchd 1 root 66u IPv4 0xdb59a664c78d2e21 0t0 TCP *:ssh (LISTEN)
launchd 1 root 67u IPv6 0xdb59a664c78cd671 0t0 TCP *:ssh (LISTEN)
launchd 1 root 68u IPv4 0xdb59a664c78d2e21 0t0 TCP *:ssh (LISTEN)
ssh 1262 hvisage 3u IPv4 0xdb59a664e59313b1 0t0 TCP blackyos:51628->hvs:ssh (ESTABLISHED)
sshd 1272 root 4u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd 1272 root 5u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd 1274 hvisage 4u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
sshd 1274 hvisage 5u IPv4 0xdb59a664e4b34941 0t0 TCP blackyos:ssh->hvs:39093 (ESTABLISHED)
C'est launchd qui pourrait avoir besoin d'être "redémarré" sur macosx, ou informé des différents ports sur lesquels écouter pour sshd, car launchd lancera un nouveau sshd pour chaque connexion sur le port 22 qui arrive.
vérifiez ce qui suit :
BlackYos:~ hvisage$ sudo ps -ef |grep -i ssh
501 1263 1 0 6:46PM ?? 0:00.06 /usr/bin/ssh-agent -l
0 1272 1 0 6:46PM ?? 0:00.40 sshd: hvisage [priv]
501 1274 1272 0 6:46PM ?? 0:00.03 sshd: hvisage@ttys004
501 1262 570 0 6:46PM ttys001 0:00.05 ssh -v hvs
501 1303 1275 0 6:50PM ttys004 0:00.00 grep -i ssh
BlackYos:~ hvisage$
J'ai utilisé ssh vers mon routeur et retour pour montrer le problème, et vous remarquerez que les deux processus sont déjà "possédés" par moi. Comparez cela à un système Linux (mon routeur) où vous remarquerez le troisième "vrai" sshd qui est possédé par root :
hvisage@hvs:~$ ps -ef |grep -i ssh
root 4053 1 0 Jul11 ? 00:04:22 /usr/sbin/sshguard -i /var/run/sshguard.pid -l /var/log/auth.log -w /etc/sshguard/whitelist -a 40 -p 420 -s 1200
root 16244 30219 0 18:46 ? 00:00:00 sshd: hvisage [priv]
hvisage 16249 16244 0 18:46 ? 00:00:00 sshd: hvisage@pts/0
hvisage 16563 16250 0 18:52 pts/0 00:00:00 grep -i ssh
root 30219 1 0 Aug09 ? 00:00:00 /usr/sbin/sshd
hvisage@hvs:~$
LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.
0 votes
Avez-vous essayé d'envoyer un signal d'arrêt :
kill -HUP
? Selonman sshd
:sshd relit son fichier de configuration lorsqu'il reçoit un signal d'arrêt, SIGHUP
. (Vous pouvez trouver le PID desshd
avecps -ef|grep sshd
. S'il y a plus d'un processussshd
, envoyezHUP
à tous.)0 votes
(voir ma dernière édition)
6 votes
Oui, vous avez raison, si vous HUP un processus
sshd
qui a une connexion ouverte,sshd
se termine. Cependant, l'envoi d'un signal HUP ausshd
principal, c'est-à-dire le parentsshd
qui crée un nouveau démon pour chaque connexion entrante, aura l'effet désiré. Sur OS X, cependant, il n'y a pas desshd
principal :sshd
est démarré parlaunchd
vialaunchproxy
avec l'option-i
, qui indique àsshd
qu'il est exécuté à partir deinetd
et démarré à la demande, lorsquelaunchd
reçoit une demande. Avec cette configuration, chaque connexion SSH reçoit unsshd
fraîchement démarré configuré avec la version la plus récente de son fichier de configuration.