Come posso ottenere che il server ssh rileggi il suo file di configurazione ( /etc/sshd_config
), senza uccidere le connessioni ssh esistenti?
EDIT: se eseguo kill -HUP <SSHD_PID>
I kill la connessione.
sshd non "rilegge" il suo file di configurazione, si riavvia da solo (fai riferimento a man sshd (8)), tuttavia, non dovrebbe uccidere il bambino / le connessioni se hai inviato il SIGHUP al PARENT di loro tutti. Questo è quando parli di sshd che si lega alla porta 22, come nel "solito" con Linux / FreeBSD / etc. [ci sono delle eccezioni e sysadmin spiega perché seguire il percorso del tipo MacOSX]
TUTTAVIA MacOSX ha lanciato come quello che ascolta e gestisce la porta 22 (dalla mia macchina 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)
È un launchd che potrebbe dover essere "riavviato" su macosx, o detto su diverse porte da ascoltare per sshd, dato che launchd genererà un nuovo sshd per ciascuna porta 22 che arriva.
controlla quanto segue:
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$
Ho ssh'd sul mio router e ritorno per dimostrare il problema, e noterai che i due processi sono già "di mia proprietà". Confrontalo con un sistema Linux (il mio roouter) dove noterai il terzo sshd "reale" di proprietà di 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:~$
La riga seguente controlla prima la configurazione e ottiene il PID del processo principale mantenendo tutti gli altri (testato in Linux, zsh):
if /usr/sbin/sshd -t; then kill -HUP 'ps aux | grep "/usr/sbin/sshd" | grep -v grep | awk '{ print $2 }''; fi