내 시스템에서 "/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
.