¿Cómo hacer que sshd vuelva a leer su archivo de configuración (sin matar las conexiones ssh)?

8

¿Cómo puedo hacer que el servidor ssh vuelva a leer su archivo de configuración ( /etc/sshd_config ), sin eliminar las conexiones ssh existentes?

EDITAR: Si ejecuto kill -HUP <SSHD_PID> I mato la conexión.

    
pregunta kjo 12.04.2013 - 18:25

3 respuestas

5

sshd no "re-lee" su archivo de configuración, se reinicia solo (refiérase a man sshd (8)), sin embargo, no debería matar al niño / conexiones si enviaba SIGHUP al PADRE de ellos todos. Es decir, cuando se habla de sshd que se enlaza al puerto 22, como en el "habitual" con Linux / FreeBSD / etc. [hay excepciones y razones sysadmin por las que se debe seguir la ruta de tipo MacOSX]

SIN EMBARGO MacOSX se ha lanzado como el que escucha y maneja el puerto 22 (desde mi máquina 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)

Es posible que sea necesario "reiniciar" el comando launchd en macosx, o informarle acerca de los diferentes puertos en los que se debe escuchar para sshd, ya que launchd generará un nuevo sshd para cada conexión del puerto 22 que viene.

comprueba lo siguiente:

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$

He guardado mi router y he vuelto para demostrar el problema, y te darás cuenta de que los dos procesos ya son "de mi propiedad". Compare esto con un sistema Linux (mi roouter) donde notará el tercer sshd "real" que es propiedad de 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:~$
    
respondido por el Hvisage 11.08.2015 - 18:57
1

La línea siguiente comprueba primero la configuración y obtiene el PID del proceso principal, manteniendo todos los demás (probado en Linux, zsh):

if /usr/sbin/sshd -t; then kill -HUP 'ps aux | grep "/usr/sbin/sshd" | grep -v grep | awk '{ print $2 }''; fi
    
respondido por el Thomas 24.05.2016 - 11:33
-2

Simplemente:

~# kill -HUP $(pidof sshd)
    
respondido por el Aborted-Security 01.08.2017 - 08:42

Lea otras preguntas en las etiquetas