温馨提示×

debian怎么设置sftp服务

小樊
40
2026-09-21 20:18:05
栏目: 智能运维

在 Debian 上设置 SFTP 服务,通常基于 OpenSSH 即可实现,不需要额外安装 FTP 服务。下面按常见使用场景给你说明。


一、最基础:使用系统用户 SFTP(推荐)

1. 安装 OpenSSH

sudo apt update
sudo apt install openssh-server

2. 确认 SSH 服务运行

sudo systemctl status ssh

如未启动:

sudo systemctl enable --now ssh

3. 创建 SFTP 用户(示例)

sudo adduser sftpuser

4. 限制用户只能 SFTP(不能 SSH 登录)

编辑 SSH 配置:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

Match User sftpuser
    ChrootDirectory /home/sftpuser
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

5. 设置目录权限(非常关键)

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

6. 重启 SSH

sudo systemctl restart ssh

7. 测试 SFTP

sftp sftpuser@服务器IP

二、多用户 SFTP(同一组)

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

三、使用密钥登录(更安全)

1. 客户端生成密钥

ssh-keygen

2. 上传公钥

ssh-copy-id sftpuser@服务器IP

3. 禁用密码登录(可选)

PasswordAuthentication no

四、防火墙设置

sudo ufw allow 22

五、常见问题

  • ❌ Connection closed → Chroot 目录权限不对
  • ❌ 能登录但不能上传 → upload 目录 owner 不对
  • ✅ SFTP 默认端口 22

如果你需要:

  • 只允许上传不能下载
  • Docker 中部署 SFTP
  • 图形化管理(FileZilla)

可以继续问我。

0 踩