CentOS7下SFTP的创建
1、创建sftp服务数据目录及相关用户
mkdir -pv /data/sftp/ #sftp数据目录 chown root:root -R /data/sftp/ #一定要是root用户,否则无法chroot chmod 755 -R /data/sftp/ #权限最低需要保证普通用户可以进入 groupadd sftp #sftp服务设置匹配组,单个用户可以忽略 useradd -d /data/sftp/baiinfosftp -m -g sftp -s /sbin/nologin baiinfosftp id baiinfosftp echo "1+1=2?Yes" |passwd --stdin baiinfosftp #添加密码 |
2、修改sshd服务配置文件,以组的方式管理sftp用户权限
vi /etc/ssh/sshd_config #修改sftp配置文件,修改内容如下: |
注销: #Subsystem sftp /usr/libexec/openssh/sftp-server 添加: Subsystem sftp internal-sftp #使用sftp服务使用系统自带的internal-sftp Match Group sftp #匹配sftp组,多个组之间用逗号分割 ChrootDirectory /data/sftp/%u #用chroot将用户的根目录指定到/data/sftp/%u,%u代表用户名,这样用户就只能在/data/sftp/%u下活动 ForceCommand internal-sftp #强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令 AllowTcpForwarding no #不允许转发TCP协议,默认是yes,如果用户可以shell访问则建议为yes X11Forwarding no #是否允许进行 X11 转发。默认值是"no",设为"yes"表示允许。 AllowUsers baiinfosftp #需要在这里加入允许sftp用户远程连接 |
:wq #保存退出 |
3、重启服务
systemctl restart sshd #重启sftp服务 |
4、配置客户端连接目录权限
cd /data/sftp/ #切换到sftp目录 chown root:root baiinfosftp #原则用户目录以上的所有目录只归root所有 chmod 755 baiinfosftp/ #给SFTP用户baiinfosftp赋权限 cd baiinfosftp/ #进入用户目录, 创建upload mkdir upload chown baiinfosftp:sftp upload/ #指定upload访问权限归baiinfosftp用户 |