마운트된 HDD에 SFTP 서버를 설정하는 데 어려움을 겪고 있습니다(client_loop: 연결 끊김 보내기: 연결 재설정).

마운트된 HDD에 SFTP 서버를 설정하는 데 어려움을 겪고 있습니다(client_loop: 연결 끊김 보내기: 연결 재설정).

마운트된 하드 드라이브에 SFTP 서버를 설정하려고 시도하고 여러 튜토리얼의 지침을 따랐을 때 로그인 시 항상 "client_loop: send disconnect: Connection Reset"이 표시됩니다.

먼저 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자체는 루트가 소유해야 합니다.

관련 정보