在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