1.创建sftp 分组
groupadd sftp
#创建用户 mysftp,指定群组sftp,不允许登陆
useradd -g sftp -M -s /sbin/nologin mysftp
#修改下密码
passwd mysftp
2.创建 sftp 的目录
mkdir -p /sftp/mysftp
chmod 755 /sftp
chmod 755 /sftp/mysftp
#使用-d参数可以修改用户登录时候的家目录,默认都是登录/home/username目录下
usermod -d /sftp/mysftp mysftp
2.修改ssh配置文件
vim /etc/ssh/sshd_config
#找到下面语句,注释掉 一般在最后
#SubSystem sftp /usr/libexec/sftp-server
#然后添加以下配置
#internal-sftp是OpenSSH中的一个子系统配置,用于指定使用哪个程序来处理SFTP(SSH文件传输协议)连接。
Subsystem sftp internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match Group sftp
ChrootDirectory %h
#强制使用 internal-sftp
ForceCommand internal-sftp
#如果有 UseDNS no AddressFamily inet AddressFamily inet 要不重启可能会失败
保存后重启sshd 服务 service sshd restart
3.给文件夹权限
chown sftp用户名:用户分组 文件路径
e.g.
chown mysftp:sftp /sftp/mysftp
4.可能遇到的问题
用sftp 工具连接的时候 可能出现各种问题,日志比较少可以
查看 /var/log/secure
pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=127.0.0.1 user=mysftp