创建用户 sftpuser,并禁止ssh登录,只允许在指定目录下载文件
1.创建sftp用户(只做1,sftp登录后没有做权限控制)
useradd -d /home/sftpuser -s /sbin/nologin sftpuser
echo "userpass" | passwd --stdin sftpuser
2.修改配置/etc/ssh/sshd_config
#注释原配置中此行
# Subsystem sftp /usr/libexec/openssh/sftp-server
#新增下列配置
# 外部子系统
Subsystem sftp internal-sftp
# 条件块
Match Group sftp #组
Match User sftp #用户
# 是否进行X11转发
X11Forwarding no
# 是否允许TCP转发
AllowTcpForwarding no
# 指定Chroot认证路径
ChrootDirectory /home/sftp #路径自定义 %h 代表用户 home 目录,%u 代表用户名
# 强制执行指定命令
ForceCommand internal-sftp
3.设置目录权限(做了1,2不做3,会连接失败)
sftp用户访问目录需要设置所有者和所属组的权限均为root,并设置目录的权限为755
chown root:root /home/sftp/ #不要使用chown -R
chmod 755 /home/sftp/ #不要使用chmod -R
修改配置过程中可能会遇到以下错误导致ssh重启失败:
Directive 'UseDNS' is not allowed within a Match block