在 Debian 上设置 SFTP 服务,通常基于 OpenSSH 即可实现,不需要额外安装 FTP 服务。下面按常见使用场景给你说明。
sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
如未启动:
sudo systemctl enable --now ssh
sudo adduser sftpuser
编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
在文件末尾添加:
Match User sftpuser
ChrootDirectory /home/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload
⚠️
ChrootDirectory必须 root 拥有且 755
sudo systemctl restart ssh
sftp sftpuser@服务器IP
sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser
sshd_config 改为:
Match Group sftpusers
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
创建目录:
sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
sudo mkdir /sftp/sftpuser/upload
sudo chown sftpuser:sftpusers /sftp/sftpuser/upload
ssh-keygen
ssh-copy-id sftpuser@服务器IP
PasswordAuthentication no
sudo ufw allow 22
Connection closed → Chroot 目录权限不对如果你需要:
可以继续问我。