使用 open-ssh 的用户的简单监狱

使用 open-ssh 的用户的简单监狱

可能的重复:
将 SSH/SCP/SFTP 用户限制到某个目录

我可以使用简单的 open-ssh 配置将用户限制在他们的 /home/%u 目录中吗?我根据在互联网上找到的内容执行了以下操作停止服务器到 sshd_config 文件附加了以下内容

Match group sftpusers
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no

启动服务器

仅供参考,我已将用户添加到 sftpusers 组

我的用户仍然可以访问我的系统上的整个文件结构

安装了 open-ssh 的 Ubuntu Server 12.04 LTS

答案1

您还需要使用Subsystem sftp internal-sftp.禁止所有其他转发,并且ForceCommand internal-sftp

另外,正如 sshd_config 手册页中所述,要 chroot 的目录必须由 root 所有并且任何人都不可写,这可能不是您的/home/%u.

也许,你会想要:

sudo mkdir -p /jail/home
sudo mount --bind /home /jail/home

并有

ChrootDirectory /jail

或者要将用户限制在他们自己的目录中,您需要为每个用户进行绑定安装:

cd /home
for u in */ do
  sudo mkdir -p "/jail/$u/home/$u"
  sudo mount --bind "$u" "/jail/$u/home/$u"
done

并且有

ChrootDirectory /jail/%u

相关内容