在 Debian 上“开启 SFTP 功能”通常分两种情况:
下面分别说明。
Debian 默认使用 OpenSSH,SFTP 一般已经开启。
sudo apt update
sudo apt install openssh-server
sudo systemctl enable ssh
sudo systemctl start ssh
编辑 SSH 配置:
sudo nano /etc/ssh/sshd_config
确保有以下一行(默认就有):
Subsystem sftp /usr/lib/openssh/sftp-server
如果没有,加上这一行
sudo systemctl restart ssh
sftp user@服务器IP
适合文件服务器用户。
sudo useradd -m sftpuser
sudo passwd sftpuser
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
sudo systemctl restart ssh
sftp sftpuser@服务器IP
✅ 能登录
❌ 不能 ssh sftpuser@服务器IP
如果开了防火墙:
sudo ufw allow 22
ssh 服务是否运行Subsystem sftp 没被注释如果你是想 只用 SFTP 不用 SSH,或 Docker / 无 root 权限环境,可以告诉我,我可以给你更具体的方案。