ChrootDirectory를 기본 디렉터리 내의 하위 디렉터리로 변경합니다.

ChrootDirectory를 기본 디렉터리 내의 하위 디렉터리로 변경합니다.

내 시스템에서 "/etc/ssh/sshd_config"만 사용하여 홈 디렉터리로 루트가 지정된 사용자를 만들고 있습니다. 잘 작동하지만 ChrootDirectory홈 디렉토리를 /home/%u/%u또는 로 만들고 싶습니다 /home/%u/public.

/home/%u두 가지 방법을 모두 시도했지만 이 작업을 수행하고 FlashFXP 또는 FileZilla(작동함)와 같은 FTP 클라이언트를 사용하여 연결할 때 항상 연결이 거부되는 것 같습니다.

"ChrootDirectory /home/%u"로 설정하면 하위 디렉터리에 액세스할 수 있으므로 권한은 괜찮습니다. 그럼 내가 뭘 잘못했나요?

답변1

man sshd_config:

ChrootDirectory는
인증 후 chroot(2)에 대한 디렉토리 경로 이름을 지정합니다. 세션 시작 시 sshd(8)는 경로 이름의 모든 구성 요소가 다른 사용자나 그룹이 쓸 수 없는 루트가 소유한 디렉터리인지 확인합니다.

사용자를 SFTP로 제한하면 아무런 트릭 없이 홈 디렉터리(하위 디렉터리 제외)를 사용할 수 있습니다.

ssh나 scp 대신 sftp를 사용하는 특별한 경우에는 ChrootDirectory %h 또는 ChrootDirectory /some/path/%u를 사용할 수 있습니다. 이 디렉터리를 포함하는 파일 시스템은 nodev 및 nosuid 또는 noexec 옵션을 사용하여 마운트해야 합니다. 디렉터리의 소유자는 사용자여야 합니다. 경로의 다른 구성 요소에 대한 소유권은 일반적인 조건을 충족해야 합니다. 이 디렉토리에는 다른 파일이 필요하지 않습니다.

SFTP는 다음을 사용하여 제한할 수 있습니다 ForceCommand internal-sftp.

관련 정보