方法 1(通过本机 openssh)

从 openssh-5.x 版本开始,sftp 可以 chroot 到特定目录。
以下步骤可以为 sftp 实现本机 openssh chroot。

  1. 创建jail 目录。
# mkdir /chroot/home
  1. 挂载到/home如下:
# mount -o bind /home /chroot/home
  1. 编辑 /etc/ssh/sshd_config 如下:
# vi /etc/ssh/sshd_config
ChrootDirectory /chroot
Subsystem sftp internal-sftp
  1. 重启sshd服务:
# service sshd restart

注意:请确保 jail 目录应该是 root 拥有的,并且不能被任何其他用户或者组写入。

on it road .com

方法 2(通过使用 pam_chroot)

  1. 将 chroot 添加到 /etc/pam.d/sshd 文件中:
# vi /etc/pam.d/sshd
session required pam_chroot.so
  1. 修改 /etc/security/chroot.conf 以包含 chroot 目录。
# vi /etc/security/chroot.conf
user /chroot_dir
  1. 修改/etc/ssh/ssh_config
# vi /etc/ssh/ssh_config
Subsystem sftp /usr/libexec/openssh/sftp-server
  1. 重启 sshd 以应用新配置:
# service sshd restart
CentOS/RHEL:如何为SFTP设置 chroot jail

chrooting sftp 是 Linux 中 OpenSSH 包提供的一项功能。
我们可以设置 chroot 环境,以避免在用户使用 sftp 时对系统进行不必要的更改,包括在不需要的位置上传。
当我们为特定用户或者所有用户 chroot sftp 时,用户只能访问其主目录及其下的子目录。

日期:2020-09-17 00:12:19 来源:oir作者:oir