方法 1(通过本机 openssh)
从 openssh-5.x 版本开始,sftp 可以 chroot 到特定目录。
以下步骤可以为 sftp 实现本机 openssh chroot。
- 创建jail 目录。
# mkdir /chroot/home
- 挂载到/home如下:
# mount -o bind /home /chroot/home
- 编辑 /etc/ssh/sshd_config 如下:
# vi /etc/ssh/sshd_config ChrootDirectory /chroot Subsystem sftp internal-sftp
- 重启sshd服务:
# service sshd restart
注意:请确保 jail 目录应该是 root 拥有的,并且不能被任何其他用户或者组写入。
on
it
road
.com
方法 2(通过使用 pam_chroot)
- 将 chroot 添加到 /etc/pam.d/sshd 文件中:
# vi /etc/pam.d/sshd session required pam_chroot.so
- 修改 /etc/security/chroot.conf 以包含 chroot 目录。
# vi /etc/security/chroot.conf user /chroot_dir
- 修改/etc/ssh/ssh_config
# vi /etc/ssh/ssh_config Subsystem sftp /usr/libexec/openssh/sftp-server
- 重启 sshd 以应用新配置:
# service sshd restart
chrooting sftp 是 Linux 中 OpenSSH 包提供的一项功能。
我们可以设置 chroot 环境,以避免在用户使用 sftp 时对系统进行不必要的更改,包括在不需要的位置上传。
当我们为特定用户或者所有用户 chroot sftp 时,用户只能访问其主目录及其下的子目录。
日期:2020-09-17 00:12:19 来源:oir作者:oir