SSH Throw 터미널을 통해 액세스하는 linode가 있습니다. 기본 디렉토리(및 액세스할 수 있는 유일한 디렉토리)가 다음과 같은 sftp 사용자를 생성해야 합니다./var/www/xxxxxx.com/public_html/directory
자, 해냈는데 연결하려고 하면 파이프가 끊어지거나 피어에서 연결을 거부합니다.
내가 한 일은 다음과 같습니다.
$ adduser --home /var/www/xxxxxx.com/public_html/directory/ username
$ chown username:username /var/www/xxxxxx.com/public_html/directory/
$ chmod 755 /var/www/xxxxxx.com/public_html/directory/
$ nano /etc/ssh/sshd_config
/etc/ssh/sshd_config
다음 줄을 추가했습니다 .
Match User username
ChrootDirectory /var/www/xxxxxx.com/public_html/directory/
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp
내가 뭘 잘못했나요?
편집 : 이것은 실제 오류입니다
EDIT2: 이것은 filezilla의 버그입니다.
편집 3: auth.log
Oct 15 17:47:11 (none) sshd[361]: fatal: bad ownership or modes for chroot directory "/var/www/xxxxxxxxxxxx.com/public_html/extras_html"
답변1
이 질문은 여러 번 답변되었지만 지금은 찾을 수 없습니다. 정답은 RTFM입니다.
간단히 말해서: man sshd_config
이 문장에서 얻을 수 있는 내용은 다음과 같습니다.
Chroot 디렉토리
인증 후 chroot(2)에 대한 디렉토리 경로 이름을 지정합니다. 경로 이름의 모든 구성 요소는 루트가 소유한 디렉터리여야 하며 다른 사용자나 그룹이 쓸 수 없어야 합니다. chroot 후에 sshd(8)는 작업 디렉토리를 사용자의 홈 디렉토리로 변경합니다.
오류 메시지에 대한 설명이 제공됩니다. 경로의 ACL을 수정하면 문제가 해결됩니다.
답변2
나는 그것을 해결했다. 문제는 내가 이렇게 하기 때문이다:
$ chown user:user /var/www/xxxxxx.com/public_html/directory/
내가 해야 할 일은:
$chown root:root /var/www/xxxxxx.com/public_html/directory/
그런 다음 "디렉터리" 내에서 777 권한을 가진 사용자를 위한 디렉터리를 만들었습니다(더 나은 방법은 아니지만 작동합니다).
"피어에 의해 거부됨" 오류는 /directory에 755 권한이 있어야 하기 때문에 발생합니다.