linux 搭建sftp服务器

1.创建sftp用户组
groupadd sftp

2.创建sftp用户并加入到sftp用户组
useradd -g sftp sftp
修改sftp用户密码
passwd sftp

3.创建/data/sftp/目录,并将它指定为sftp组用户的home目录
mkdir -p /data/sftp
usermod -d /data/sftp sftp

4.修改ssh 配置文件/etc/ssh/sshd_config
将如下这行注释掉

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

添加 以下几行
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/ 设置用户上传文件的根目录
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no (修改原有的 yes为no 不起用转发代理)
注意:
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,属主和属组必须是root,即/data及子目录/data/sftp/ 属主和属组必须是root
ChrootDirectory设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,也就是说权限最大设置只能是755

5.设置Chroot目录权限
chown root:root /data/sftp/
chmod 755 /data/sftp/

6.新建一个目录供sftp用户上传文件,这个目录属主属组为sftp,所有者有写入权限所有组无写入权限(即权限为755)
mkdir /data/sftp/upload
chown sftp:sftp /data/sftp/upload
chmod 755 /data/sftp/upload

7.重启sshd服务测试

8.在linux其他服务器上进行验证,sftp 用户名@ip地址
sftp sftp@1x.x.x.x
get 下载文件 put 上传文件 需进入到upload目录下执行put/get 上传下载

9.在windows 利用Winscp或者File zilla 测试
主机地址: x.x.x.x 默认端口为 22
用户名: sftp
密码: sftp用户密码
若修改了sftp端口则需要指定端口如下:
sftp -p22022 sftp@1x.x.x.x #端口位置要在前,否则访问失败

posted @ 2022-04-30 20:55  忧郁的小柒  阅读(507)  评论(0编辑  收藏  举报