在SFTP配置中,可通过以下方式限制用户访问:
使用Chroot环境
在/etc/ssh/sshd_config中添加以下配置,将用户限制在其主目录:
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
%h代表用户主目录,需确保主目录权限为root:root且权限为755。ForceCommand internal-sftp强制用户仅能使用SFTP,无法通过SSH登录。文件权限控制
root拥有,子目录(如上传目录)可设置为用户可写:sudo mkdir /home/username/files
sudo chown username:username /home/username/files
sudo chmod 755 /home/username/files
用户组管理
创建专用用户组(如sftpusers),将需限制的用户加入该组,避免单独配置。
防火墙规则(可选)
通过iptables或firewalld限制SFTP访问的IP范围,例如:
sudo iptables -A INPUT -p tcp --dport 22 -s allowed_ip -j ACCEPT
禁用Shell访问
确保用户shell为/sbin/nologin或/bin/false,防止通过SSH登录:
sudo usermod -s /sbin/nologin username
配置后需重启SSH服务生效:
sudo systemctl restart sshd