1. 创建 sftp用户组
groupadd sftp_users
2.创建用户 ,设置家目录,不能ssh登录
useradd -g sftp_users -d /data/USERNAME -s /sbin/nologin USERNAME
3.设置密码
passwd USERNAME
4.创建用户上传目录,设置目录归属
mkdir -p /data/USERNAME
chown -R USERNAME:sftp_users /data/USERNAME #目录归属用户组sftp_users,用户USERNAME
5.配置 sshd_config
vim /etc/ssh/sshd_config
#修改
Subsystem sftp /usr/libexec/openssh/sftp-server
#修改后
Subsystem sftp internal-sftp
为什么实用 internal-sftp 而不用默认的 sftp-server,这是因为:
-
这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;
-
更好的性能,不用为 sftp 再开一个进程。
在文件末尾添加新配置
# 匹配用户组,如果要匹配多个组,多个组之间用逗号分割
Match Group sftp_users
# 指定登陆用户到自己的用户目录
ChrootDirectory /data/%u
# 指定 sftp 命令
ForceCommand internal-sftp
# 这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no
AllowTcpForwarding no
6.重启
service sshd restart
补充 :ssh 密钥登录配置