当前位置:首页 >> 服务器

Centos7搭建sftp服务流程

注意:此教程是在网站的根目录下搭建sftp

创建一个用户组和用户,并设置密码

groupadd sftp
useradd -g sftp -s /bin/false website
passwd website

设置website用户的主目录为/var/www/html/uploads/

usermod -d /var/www/html/uploads/

编辑sftp的配置文件

vim /etc/ssh/sshd_config

修改:

#Subsystem sftp /usr/libexec/openssh/sftp-server ##前面添加#号

末尾添加:(部分有的话修改就可以不用添加)

Subsystem sftp internal-sftp ##指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp ##匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /var/www/html/uploads/ ##sftp主目录指定到/var/www/html/upoads/
ForceCommand internal-sftp ##指定sftp命令
AllowTcpForwarding no ##用户不能使用端口转发
X11Forwarding no ##用户不能使用端口转发

设定sftp的主目录权限

chown root:sftp /var/www/html/uploads/ //文件夹所有者必须为root,用户组可以不是root

chmod 744 /var/www/html //权限不能超过755,否则会导致登录报错,可以是755

重启相关服务

systemctl restart sshd.service

注意:目前为止,sftp的主目录只有查看权限,只能实现下载、查看,并不能上传,删除,重命名

在sftp主目录下创建一个test文件夹,并设置所有者为website,用户组为sftp

mkdir /var/www/html/uploads/test
chown website:sftp /var/www/html/uploads/test
chmod 744 /var/www/html/uploads/test

重启一次sshd

systemctl restart sshd.service

注意:登录sftp,分为在linux和windows登录

linux:sftp website@ip地址

windows:并不自带sftp命令,只能通过下载ftp连接工具,比如xftp,或者flashfxp等等