我正在尝试仅允许与特定文件夹建立 sFTP 连接
/etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
Match Group demouser
# Force the connection to use SFTP and chroot to the required directory.
ForceCommand internal-sftp
ChrootDirectory /home/demouser/ftp/
# Disable tunneling, authentication agent, TCP and X11 forwarding.
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
然后我运行以下命令来创建帐户/文件夹
groupadd demouser
useradd -g demouser -s /sbin/nologin demouser
chown root:root /home/demouser
chmod 755 /home/demouser/
cd /home/demouser/
mkdir ftp
chown demouser:demouser ftp
我面临的问题是,当设置了 ChrootDirectory 时我无法连接,/home/demouser/ftp/
但当我设置它时它可以正常工作,因为/home/demouser
除非那是在指定的 ChrootDirectory 中已经创建的子文件夹,否则它似乎不起作用。
答案1
ChrootDirectory需要属于root用户,并且root组也需要具有特定的权限
chown 根:rootChroot目录
chmod 755Chroot目录