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
하지만 해당되지 않은 사용자라도 sftp
chroot 제한이 적용됩니다. 예를 들어 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