我租了一个3A服务器,我把我的办法教给你们,有问题能够后盾私信我
SFTP是基于默认的22端口,是ssh内含的协定,只有启动了sshd就能够应用。sftp采纳的是ssh加密隧道,装置性方面较ftp强,而且依赖的是零碎自带的ssh服务
本次应用liunx自带的internal-sftp
1、创立用户并设置明码

useradd -s /bin/false sftpuserpasswd sftpuser

2、批改/etc/ssh/sshd_config配置文件
正文掉上面这行

Subsystem sftp /usr/libexec/openssh/sftp-server

同时增加以下内容:

Subsystem sftp internal-sftp  #指定应用sftp服务应用零碎自带的internal-sftp Match user  sftpuser        #匹配用户,如果要匹配多个组,多个组之间用逗号宰割ChrootDirectory  /data/sftp   #设定属于用户组sftp的用户拜访的根文件夹如设置    /data/sftp   作为sftpuser        的sftp根目录ForceCommand internal-sftp #指定sftp命令,强制执行外部sftp,并疏忽任何    ~/.ssh/rc文件中的命令X11Forwarding no   #这两行,如果不心愿该用户能应用端口转发的话就加    上,否则删掉AllowTcpForwarding no

3、敞开selinux
批改/etc/sysconfig/selinux配置文件
将文件中的SELINUX=enforcing 批改为 SELINUX=disabled
而后执行以下命令
setenforce 0 (// 0是敞开,1是开启 )
4、重启sshdfuwu

systemctl restart sshd 或systemctl restart sshd.service        #重启sshdsystemctl status sshd.service

5、权限赋予
批改sftp-users用户组用户目录权限
因为应用了ChrootDirectory /data/sftp 作为sftpuser的sftp根目录,当初来批改权限
ChrootDirectory设置的目录权限及其所有的下级文件夹权限,属主和属组必须是root;
ChrootDirectory设置的目录权限及其所有的下级文件夹权限,只有属主能领有写权限,也就是说权限最大设置只能是755
因为/data/sftpuser 是root创立的,权限755,如果sftpuser间接sftp过来是没有权限写入,因而,须要/data/sftp下创立新目录并给与qhlh权限
创立文件夹:
mkdir /data/sftp/wly
权限赋予

chown sftpuser:sftpuser /data/sftp/wly 将目录给用户chmod 755 /data/sftp/wly  #权限也只能是755,否则无奈限度目录

6、测试验证
应用Sftp sftpuser@192.168.31.49或应用filezilla客户端连贯到sftp服务器
应用filezilla客户端连贯到sftp服务器上传一份文件验证:

7、异样问题:
 当本来sftp运行一段时间后忽然不行报如下谬误

并且服务器也连贯不上sftp

工具报错:无奈初始化sftp协定,主机是sftp服务器吗?
很大起因是password aged、明码老化、有效期曾经生效导致会话失败!
sftp默认明码有效期是30天
解决方案如下:
1、间接用命令批改用户明码有效期:chage -M 99999 username--sftp用户名
2、批改/etc/shadow文件:
3、批改/etc/login.defs文件:
(注:login.defs文件参数只对创立普通用户失效,对root用户有效。shadow文件比login.defs文件优先级要高!)