2019独角兽企业重金招聘Python工程师标准>>>
创建 Sftp Chroot 访问目录
# mkdirs /home/sftp/hychroot
创建用户
# useradd -d /home/sftp/hychroot -s /bin/false hy
在 sshd_config 里设置 sftp-server Subsystem
使用 internal-sftp 替代默认的 sftp-server 作为 sftp-server Subsystem
修改 /etc/ssh/sshd_config 文件, 注释掉下面的一行:
#Subsystem sftp /usr/libexec/openssh/sftp-server
然后添加一行
Subsystem sftp internal-sftp
# grep sftp /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
设置基于用户的 Chroot Directory
# tail /etc/ssh/sshd_config
Match User hy
ChrootDirectory /home/sftp/hychroot
ForceCommand internal-sftp
# service sshd restart
添加指定用户写入文件夹
# mkdir /home/sftp/hychroot/fzwrite
# chown fz:fz fzwrite
fz$ ln -s /home/sftp/hychroot/fzwrite /home/fz/hyfile
fz$ touch /home/fz/hyfile/test
Chroot SFTP 登陆
# sftp hy@sftpserver
hy's password:
sftp> pwd
Remote working directory: /
sftp> ls
fzwrite
sftp> cd /etc
Couldn't canonicalise: No such file or directory
sftp> cd /fzwrite
sftp> ls
test
How to Setup Chroot SFTP in Linux (Allow Only SFTP, not SSH)
SSH Authentication Refused: Bad Ownership or Modes for Directory问题解决办法
Where is the sshd log file on Red Hat Linux stored?
用ChrootDirectory限制SFTP登录的用户只能访问指定目录且不能进行ssh登录