sshd가 ssh 연결을 종료하지 않고 구성 파일을 다시 읽도록하는 방법은 무엇입니까?


8

/etc/sshd_config기존 SSH 연결을 종료하지 않고 SSH 서버가 구성 파일 ( ) 을 다시 읽도록하려면 어떻게 해야합니까?

편집 : 나는 실행하면 kill -HUP <SSHD_PID>내가 죽일 연결합니다.


끊기 신호를 보내려고 했습니까 kill -HUP <PID of sshd>? 에 따르면 man sshd: sshd rereads its configuration file when it receives a hangup signal, SIGHUP. (당신의 PID를 찾을 수 sshdps -ef|grep sshd하나 개 이상의이 있다면. sshd처리, 전송 HUP모두에.)
하우 메

(최근
편집본

6
예, sshd연결이 열려 있는 프로세스를 HUP하면 sshd종료됩니다. 그러나 HUP 신호를 main sshd(즉, sshd들어오는 각 연결마다 새 데몬을 분기하는 상위 )에 보내는 것은 원하는 효과를냅니다. OS X에서하지만, 어떤 주요 없습니다 sshd: sshd에 의해 시작됩니다 launchd통해 launchproxy옵션을 -i알려줍니다, sshd그것은에서 실행 있다고 inetd할 때, 수요에 시작 launchd요청을받습니다. 이 설정을 사용하면 모든 SSH 연결이 sshd최신 버전의 구성 파일로 새로 구성됩니다.
jaume

답변:


5

sshd는 구성 파일을 "다시 읽지"않으며 자체적으로 다시 시작되지만 (man sshd (8) 참조), SIGHUP을 모든 부모에게 보낸 경우 자식 / 연결을 종료하지 않아야합니다. Linux / FreeBSD / etc의 "일반"과 같이 포트 22에 바인딩되는 sshd에 대해 이야기 할 때입니다. [MacOSX 유형 경로를 따르는 예외 및 sysadmin 이유가 있습니다]

그러나 MacOSX는 포트 1 (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)

macosx에서 "다시 시작"해야하거나 sshd를 인식하기 위해 다른 포트에 대해 알려야 할 수도 있습니다. 시작될 때마다 각 포트 22 연결에 대해 새로운 sshd가 생성됩니다.

다음을 확인하십시오.

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$

라우터에 ssh'd하고 문제를 설명하기 위해 다시 돌아 왔으며 두 프로세스가 이미 "소유"되어 있음을 알 수 있습니다. 이것을 루트가 소유 한 세 번째 "실제"sshd를 볼 수있는 Linux 시스템 (my roouter)과 비교해보십시오.

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:~$

1

다음 행은 구성을 먼저 확인하고 다른 모든 프로세스를 유지하는 기본 프로세스의 PID를 가져옵니다 (Linux, zsh에서 테스트 됨).

if /usr/sbin/sshd -t; then kill -HUP `ps aux | grep "/usr/sbin/sshd" | grep -v grep | awk '{ print $2 }'`; fi

macOS에서 작동하지 않습니다 ... sshd프로세스 가 없습니다 .
Per Lundberg

-2

간단히:

~# kill -HUP $(pidof sshd)

macOS에서 작동하지 않습니다 ... sshd프로세스 가 없습니다 .
Per Lundberg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.