SFTP的好处不用多说,安全,简单,便于管理(尤其在防火墙端口设置方面)。
Linux下配置SFTP非常简单。
此例中要求:用户ftpuser可以上传数据至/media/data/shared/ftproot,不允许读取和修改上级目录的数据。不允许SSH登陆至服务器。
创建用户和组。指定用户的home目录为/media/data/shared,shell为/sbin/nologin, 隶属于sftp_users组,并为其创建密码。
创建目录,并修改权限:/media/data/shared/ftproot
注意:ftpuser的home目录的属主和属组改为root,并且权限为755。此时ftpuser用户不具有写入权限,也就不能上传数据,可以在该目录下创建一个可上传的目录,并修改它的属主和属组,使其具有写入权限。
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755
修改配置文件。
vim /etc/ssh/sshd_config
UsePAM yes(确定该行没有被注释) #Subsystem sftp /usr/libexec/openssh/sftp-server #(注释掉这行) Subsystem sftp internal-sftp #(这行指定使用sftp服务使用系统自带的internal-sftp。) Match Group sftp_users #(匹配sftp用户所属的组,也可用“Match User USERNAME”来匹配用户) ChrootDirectory %h #(非常重要!使用ChrootDirectory将用户锁定在自己的home目录中,使其不可浏览上级目录。并且该行一定要在“Match”语句下方!)
重启sshd.service。
转载于:https://blog.51cto.com/yinkai/1729578