Debian系统SFTP配置步骤
Debian系统默认包含OpenSSH服务器,若未安装,可通过以下命令完成安装:
sudo apt update
sudo apt install openssh-server
编辑SSH配置文件/etc/ssh/sshd_config,启用内部SFTP子系统并添加安全限制:
sudo nano /etc/ssh/sshd_config
# Subsystem sftp /usr/lib/openssh/sftp-server行,取消注释并将路径改为internal-sftp(更轻量且无需额外安装):Subsystem sftp internal-sftp
sftpusers组内的用户限制在自家主目录(%h表示用户主目录),并禁用TCP转发、X11转发等不必要的功能:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
为便于管理,建议创建一个专门的用户组用于SFTP访问:
sudo groupadd sftpusers
创建新用户并将其添加到sftpusers组,设置登录密码:
sudo adduser username # 按提示设置用户名和密码
sudo usermod -aG sftpusers username # 将用户加入sftpusers组
SFTP要求用户主目录的所有者为该用户,权限为755(确保用户可读写自身文件,但无法修改目录结构):
sudo chown username:username /home/username
sudo chmod 755 /home/username
若需允许用户上传文件,需创建单独的上传目录并设置正确权限(上传目录所有者为用户,组为sftpusers,权限为775):
sudo mkdir /home/username/upload
sudo chown username:sftpusers /home/username/upload
sudo chmod 775 /home/username/upload
使配置生效,重启SSH服务:
sudo systemctl restart sshd
使用SFTP客户端测试连接,确认配置是否成功:
sftp username@your_server_ip
连接成功后,尝试切换至上传目录(如cd upload)或上传文件(如put local_file.txt),验证读写权限是否正常。
sftpusers组,或在sshd_config的Match块中指定具体用户名(如Match User username)。/var/log/auth.log可用于排查连接问题(如权限不足、配置语法错误)。ufw),仅允许必要端口(默认22)的SSH连接:sudo ufw allow 22/tcp
sudo ufw enable