我一直在尝试在 debian 服务器中配置 sftp。sshd_config:
Subsystem sftp internal-sftp
UsePAM no
Match User sftpUser
ChrootDirectory /users/sftp/sftpUser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
目录:
drwxr-xr-x 3 root root 4096 Oct 20 10:59 users
drwxr-xr-x 3 root root 4096 Oct 20 11:00 sftp
drwxr-xr-x 2 root root 4096 Oct 20 11:00 sftpUser
cat /var/log/auth.log
Oct 20 10:58:22 w1 sshd[24634]: Accepted password for sftpUser from 201.156.103.213 port 34106 ssh2
Oct 20 10:58:22 w1 sshd[24636]: fatal: bad ownership or modes for chroot directory component "/"
sftpUser 没有家庭,bin/false
并且不是用户组的成员。
在客户端,我得到了著名的结果Write failed: Broken pipe
,然后连接断开了。注释ChrootDirectory
sshd_config 中的命令可以建立连接,但用户却丢失了。
我究竟做错了什么 ?
答案1
使用ChrootDirectory
选项sshd_config
需要对书面文本有一些基本的了解。
这是手册页的快照sshd_config(5)
:
Chroot目录
chroot(2)
指定认证后 目录的路径名。路径名的所有组成部分都必须是 root 拥有的目录,且其他任何用户或组都无法写入。chroot 之后,sshd(8)
将工作目录更改为用户的主目录。
这是您的错误日志:
fatal: bad ownership or modes for chroot directory component "/"
这意味着您需要确保满足引文中强调的部分:您/
需要由 root 拥有,并且w
仅对所有者拥有 acl。