Debian下搭建SFTP服务器的详细步骤
首先,确保系统软件包为最新版本,避免因旧版本漏洞导致安全问题:
sudo apt update && sudo apt upgrade -y
安装OpenSSH服务器(Debian默认仓库已包含该组件):
sudo apt install openssh-server -y
编辑SSH主配置文件(需root权限):
sudo nano /etc/ssh/sshd_config
关键修改项:
# Subsystem sftp /usr/lib/openssh/sftp-server,取消注释并将路径改为internal-sftp(更轻量且无需额外安装):Subsystem sftp internal-sftp
sftpusers组并将该组成员限制在自家目录(%h代表用户主目录),禁止SSH登录和其他转发功能:Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo groupadd sftpusers
ftpuser为例,创建用户时设置密码(交互式输入):sudo adduser ftpuser
sudo usermod -aG sftpusers ftpuser # 将用户添加到sftpusers组
SFTP要求用户主目录的所有者为用户自身(而非组或root),且权限为755(确保用户可读写自己的文件,但无法修改目录结构):
sudo chown ftpuser:ftpuser /home/ftpuser
sudo chmod 755 /home/ftpuser
注意:若需让用户上传文件,需在主目录下创建专用子目录(如upload),并设置正确权限:
sudo mkdir /home/ftpuser/upload
sudo chown ftpuser:sftpusers /home/ftpuser/upload # 所属组为sftpusers,允许组内用户写入
sudo chmod 775 /home/ftpuser/upload
修改配置后,必须重启SSH服务使更改生效:
sudo systemctl restart sshd
验证服务状态(确保无报错):
sudo systemctl status sshd
使用SFTP客户端(如Linux终端或FileZilla)连接服务器,输入用户名和密码:
sftp ftpuser@your_server_ip
/home/ftpuser);test.txt上传至服务器):put test.txt
upload/test.txt至本地):get upload/test.txt
systemctl status sshd),或防火墙是否放行22端口(sudo ufw allow 22);chown命令),且权限为755;775(chown ftpuser:sftpusers)。通过以上步骤,即可在Debian系统上搭建一个安全、受限的SFTP服务器,满足文件传输需求。