sshd_config의 chroot 지시문은 사용자를 제외할 수 없습니다.

sshd_config의 chroot 지시문은 사용자를 제외할 수 없습니다.

Ubuntu에서는 다음 위치에 SSH 서버 구성을 설정했습니다 /etc/ssh/sshd_config.

Subsystem sftp internal-sftp

UsePAM yes
ChrootDirectory %h
ForceCommand internal-sftp
GatewayPorts no
AllowTcpForwarding no
KeepAlive yes
IgnoreUserKnownHosts no
Match group sftp

하지만 해당되지 않은 사용자라도 sftpchroot 제한이 적용됩니다. 예를 들어 bobby(이 아닌 ) SSH를 통해 로그인을 시도할 때 sftp다음 오류가 발생합니다 .

sshd[17977]: 치명적: chroot 디렉토리 '/home/bobby'에 대한 소유권 또는 모드가 잘못되었습니다.

나는 이것을 시도했습니다 :

Match group sftp, User !bobby

서비스를 다시 시작했지만 동일한 문제가 발생했습니다.

답변1

Match group sftp그룹에 지원하려는 라인 앞에 있어야 합니다 . 이 그룹 sftp뒤에 키워드가 없기 때문에 해당 그룹에는 아무 것도 적용되지 않습니다 ! 또는 이 경우에는 키워드가 일치할 그룹을 지정하지 않았기 때문에 키워드가 모든 사람에게 적용됩니다.

에서 인용man sshd_config

Match   Introduces  a conditional block.  If all of the criteria on the
        Match line  are satisfied, the keywords on the following lines
        override those set  in the global section of the config file,
        until either another Match  line or the end of the file.  If a
        keyword appears in  multiple Match blocks that are satisified,
        only the first instance of the keyword is applied.

다음과 같이 시도해 보세요:

Subsystem sftp internal-sftp

UsePAM yes

GatewayPorts no
AllowTcpForwarding no
KeepAlive yes
IgnoreUserKnownHosts no

Match group sftp
  ChrootDirectory %h
  ForceCommand internal-sftp

관련 정보