
SFTP 액세스 권한과 제한된 SSH 액세스 권한을 가진 사용자를 설정하려고 합니다. 따라서 사용자를 루트로 전환한 다음 기본적으로 다음에 지정된 대로 정확하게 설정했습니다.이 튜토리얼. 그러나 SSH를 통해 서버에 성공적으로 연결할 수는 있지만 SFTP 연결을 통해 연결을 시도하면 연결 실패라는 메시지만 표시됩니다.
연구 및 수정 시도
이 작업을 수행하는 방법을 설명할 수 있는 모든 것을 검색해 보았지만 찾을 수 있는 것은 다음과 같습니다.이 주제대답이 없었습니다. 게다가, 이것이 어떻게 이루어질 수 있는지 보여주는 기사를 온라인에서 찾을 수 없었습니다.
또한 실패의 원인이 될 수 있는 누락된 명령이 없는지 확인하기 위해 전체 폴더를 chrooted 디렉터리에 /bin
복사 해 보았습니다 . 을( 를) 설정할 때를 포함하여 사용자가 연결을 닫았다는 유일한 로그를 포함하여 결과가 나오지 /lib
않았습니다 . WinSCP에서 SCP 연결을 사용하여 연결을 시도하면 파일을 볼 수 있지만 로컬 드라이브에 아무것도 복사할 수 없으며 그 반대의 경우도 마찬가지입니다./var/log/auth.log
LogLevel Debug2
/etc/ssh/sshd_config
SSHD 구성 파일(관련 섹션):
Match User test_user
ChrootDirectory /home/test_user
답변1
jailkit
결국 나는 원래 시도했던 수동 작업 대신 사용자 감옥을 자동화하도록 설계된 도구를 발견했습니다 .
chrooted 디렉토리를 설정하기 위해 다음 단계를 사용했습니다.
설치(우분투에서) 소스에서 설치를 찾을 수 있습니다여기
sudo apt install jailkit
디렉토리 설정
액세스를 허용하는 다양한 패키지 목록은 에서 확인할 수 있습니다 /etc/jailkit/jk_init.ini
. 나는 또한 그것을 설정 한 후에 이런 식으로 git을 설치했습니다.
sudo chown root:root /srv/test_user
sudo jk_init -v /srv/test_user netutils basicshell jk_lsh openvpn ssh sftp
아래 일반 형식
sudo chown root:root <chroot_directory>
sudo jk_init -v <chroot_directory> <packages>
사용자를 감옥에 가두기
sudo jk_jailuser -m -j /srv/test_user test_user
쉘 변경
마지막으로 에 지정된 쉘을 에서 로 <chroot_directory>/etc/passwd
변경해야 합니다 . test_user, 루트 및 다른 로그인에 대한 항목만 있어야 합니다./usr/sbin/jk_lsh
/bin/bash
거기에서 ssh 또는 sftp/scp를 통해 로그인하고 예상대로 모든 것에 액세스할 수 있습니다. 공개 키를 통해 로그인하려면 ~/.ssh/authorized_keys
파일 을 설정해야 합니다.