[server] sshd (openssh)가 연결 당 두 개의 프로세스를 생성하는 이유는 무엇입니까?

로그인하기 전에 :

$ ps -elf | grep sshd
5 S root     26135     1  0  80   0 - 13115 ?      17:26 ?        00:00:00 /usr/sbin/sshd
0 S test     26480 21337  0  80   0 -  4154 -      18:41 pts/27   00:00:00 grep --colour=auto sshd

로그인 후 :

$ ps -elf | grep sshd
5 S root     26135     1  0  80   0 - 13115 ?      17:26 ?        00:00:00 /usr/sbin/sshd
4 S root     26577 26135  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test [priv]
5 S test     26582 26577  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test@pts/30
0 S test     26653 21337  0  80   0 -  4155 -      18:42 pts/27   00:00:00 grep --colour=auto sshd

두 가지 프로세스는 무엇입니까?

4 S root     26577 26135  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test [priv]
5 S test     26582 26577  0  80   0 - 24204 ?      18:42 ?        00:00:00 sshd: test@pts/30

감사,



답변

권한 분리-루트 만 할 수있는 작업을 수행 할 수있는 루트 권한을 유지하는 프로세스와 다른 모든 작업을 수행하는 프로세스.

이 질문은 질문했다 당시, 권한 분리의 옵션에 의해 제어 된 sshd_config, 그리고 sshd_configman 페이지가가 무엇인지 설명했다. 버전 7.5 에서는 권한 분리가 필수가되어 옵션과 해당 설명서가 사라졌습니다. 그러한 문서가 존재하는 경우 더 이상 권한 분리 기능에 대한 표준 문서를 찾을 수있는 곳을 더 이상 알 수 없습니다.

제거하기 전에 맨 페이지 항목의 마지막 버전은 다음과 같이 말했습니다.

UsePrivilegeSeparation
        Specifies whether sshd(8) separates privileges by creating an
        unprivileged child process to deal with incoming network traffic.
        After successful authentication, another process will be created
        that has the privilege of the authenticated user.  The goal of
        privilege separation is to prevent privilege escalation by con-
        taining any corruption within the unprivileged processes.  The
        argument must be yes, no, or sandbox.  If UsePrivilegeSeparation
        is set to sandbox then the pre-authentication unprivileged
        process is subject to additional restrictions.  The default is
        sandbox.


답변