마운트된 HDD에 SFTP 서버를 설정하려는 노력(client_loop: 연결 끊김 전송: 연결 재설정)

마운트된 HDD에 SFTP 서버를 설정하려는 노력(client_loop: 연결 끊김 전송: 연결 재설정)

마운트된 하드 드라이브에 SFTP 서버를 설정하고 수많은 튜토리얼의 지침을 따라 시도했지만 로그인할 때 계속 "client_loop: 연결 끊김 전송: 연결 재설정" 메시지가 계속 표시되었습니다.

먼저 sftp라는 그룹을 만들고 홈 디렉터리가 HDD에 있는 그룹에 사용자를 할당합니다.

sudo useradd -g sftp -d /media/linux/MyHDD/NAS/USERNAME -s /sbin/nologin USERNAME-nas

sudo passwd USERNAME

여기서 USERNAME은 내 개인 사용자 이름입니다.

그런 다음 USERNAME 폴더 위의 모든 항목에 대한 소유권을 루트로 설정하고 USERNAME 폴더를 사용자로 설정해 보았습니다.

sudo chown -R root:root /media

sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME

다음을 포함하도록 sshd_config 파일을 편집합니다.

Subsystem sftp internal-sftp

Match Group sftp
ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
ForceCommand internal-sftp
AllowTcpForwarding no
X11 Forwarding no

sshd 서비스를 다시 시작하는 것을 잊지 마세요

sudo systemctl restart sshd

내 Linux 컴퓨터에서 이 폴더에 액세스하고 싶기 때문에 미디어 폴더의 권한을 777로 설정했습니다.

sudo chmod -R 777 /media

이 모든 작업을 수행한 후 sftp에 로그인하고 비밀번호를 입력하려고 하면 다음과 같은 메시지가 표시됩니다.

sftp -P PORTNO USERNAME@IP

client_loop: send disconnect: Connection reset
Connection closed

이것이 권한 문제인지 소유권 문제인지 모르겠습니다. 나는 오랫동안 이 문제를 해결하려고 노력해 왔지만 이해할 수 없는 것 같으므로 도움을 주시면 대단히 감사하겠습니다.

답변1

ChrootDirectory /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chown -R USERNAME:sftp /media/linux/MyHDD/NAS/USERNAME
[...]
sudo chmod -R 777 /media

"ChrootDirectory" 기능을 사용하려면 chroot 디렉터리와 해당 상위 디렉터리에 다음이 있어야 합니다.특정 소유권 및 권한:

Chroot 디렉토리
인증 후 chroot(2)에 대한 디렉토리 경로 이름을 지정합니다. sshd(8)는 세션 시작을 확인합니다.경로 이름의 모든 구성 요소는 루트가 소유한 디렉터리이며 다른 사용자나 그룹이 쓸 수 없습니다.. chroot 후에 sshd(8)는 작업 디렉토리를 사용자의 홈 디렉토리로 변경합니다. ChrootDirectory의 매개변수는 TOKENS 섹션에 설명된 토큰을 허용합니다.

chroot 디렉토리를 설정하는 방법에는 두 가지 문제가 있습니다.

첫째, /media/media/linux/MyHDD/NAS/USERNAME그 사이의 모든 디렉토리는 전역적으로 또는 그룹 쓰기가 가능하지 않습니다. 모드는 777이 아닌 755여야 합니다.

둘째, /media/linux/MyHDD/NAS/USERNAME루트가 자체적으로 소유해야 합니다. 그 안의 디렉터리와 파일은 사용자가 소유할 수 있지만 USERNAME디렉터리 자체는 루트가 소유해야 합니다.

관련 정보