致命:SFTP 中 chroot 目录组件“/”的所有权或模式错误

Lui*_*ela 5 debian ssh sftp

我一直在尝试在 debian 服务器中配置 sftp。sshd_config:

Subsystem sftp internal-sftp

UsePAM no

Match User sftpUser
ChrootDirectory /users/sftp/sftpUser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Run Code Online (Sandbox Code Playgroud)

目录:

 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
Run Code Online (Sandbox Code Playgroud)

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 "/"
Run Code Online (Sandbox Code Playgroud)

sftpUser 无家,bin/false用户组成员。

在客户端,我得到了著名的Write failed: Broken pipe,然后连接断开。ChrootDirectory在 sshd_config 中注释该命令会建立连接,但会导致用户松散。

我究竟做错了什么 ?

Jak*_*uje 11

使用ChrootDirectoryoption insshd_config需要对书面文本有一些基本的了解。

这是手册页的快照sshd_config(5)

根目录

指定chroot(2)认证后的目录路径名。 路径名的所有组成部分都必须是任何其他用户或组不可写的根目录。在 chroot 之后,sshd(8)将工作目录更改为用户的主目录。

这是您的错误日志:

fatal: bad ownership or modes for chroot directory component "/"
Run Code Online (Sandbox Code Playgroud)

这意味着您需要确保满足引用中强调的部分:您/需要由 root 拥有并且w只有所有者拥有acl。

  • 结合您的回答以及 Michael Hampton 提供的评论,问题解决了。似乎根 (/) 目录由不同于 root 的另一个用户拥有。更正它:`chown root:root /` (2认同)
  • 我想澄清一下,`/` 的意思是 *“对于 chroot 用户来说成为 / 的目录”* (2认同)