sftp搭建
#新建sftp的用户组:
groupadd sftp
#创建用户并设置密码
useradd -s /bin/false -g sftp sftptuser
passwd sftptuser #密码: sftppasswd
usermod -g sftp sftptuser
#配置ssh和权限
vi /etc/sysconfig/selinux
SELINUX=disabled
#打开/etc/ssh/sshd_config文件
vi /etc/ssh/sshd_config
#注释掉下面这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
#20221125增加如下
Subsystem sftp internal-sftp #指定使用sftp服务使用系统自带的internal-sftp
Match user sftptuser #匹配用户,如果要匹配多个组,多个组之间用逗号分割
ChrootDirectory /data/sftp #设定属于用户组sftp的用户访问的根文件夹如设置 /data/sftp 作为sftpuser 的sftp根目录
ForceCommand internal-sftp #指定sftp命令,强制执行内部sftp,并忽略任何 ~/.ssh/rc文件中的命令
X11Forwarding no #这两行,如果不希望该用户能使用端口转发的话就加 上,否则删掉
AllowTcpForwarding no
#重启网络
#重启sshd
systemctl restart sshd
或
systemctl restart sshd.service
#查询sshd启动状态
systemctl status sshd.service
#5、权限赋予
mkdir -p /data/sftp/zqxzt
#更改归属 用户:用户组
此步注意sftp的父目录即/data/sftp属主应为root,否则连接出错
chown -R sftptuser:sftp /data/sftp/zqxzt
chmod 755 /data/sftp/zqxzt #权限也只能是755,否则无法限制目录
#测试
sftp sftptuser@xxx.xx.xxx.xxx 22 #密码:sftppasswd #数据目录:zqxzt
cd zqxzt
put test.jpg