温馨提示×

debian sftp怎么配置

小樊
48
2026-10-21 03:41:03
栏目: 智能运维

在 Debian 上配置 SFTP(基于 OpenSSH)通常有两种常见需求:

  1. 普通用户 SFTP(系统用户)
  2. 限制用户只能 SFTP,不能 SSH 登录(Chroot)

下面我按最常用、最安全的方式给你讲。


一、基础环境

Debian 一般默认已安装 OpenSSH:

sudo apt update
sudo apt install openssh-server

确认服务运行:

sudo systemctl status ssh

二、创建 SFTP 用户(推荐方式)

1. 创建用户

sudo adduser sftpuser

2. 修改用户 shell(禁止 SSH 登录)

sudo usermod -s /usr/sbin/nologin sftpuser

三、配置 SFTP Chroot(重点)

1. 修改 SSH 配置

编辑配置文件:

sudo nano /etc/ssh/sshd_config

注释或删除(如果有):

# Subsystem sftp /usr/lib/openssh/sftp-server

添加:

Subsystem sftp internal-sftp

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

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

Chroot 目录必须 root 拥有,且其他用户不可写:

sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser

创建可写目录:

sudo mkdir /home/sftpuser/upload
sudo chown sftpuser:sftpuser /home/sftpuser/upload

四、重启 SSH

sudo systemctl restart ssh

五、测试 SFTP

sftp sftpuser@服务器IP

登录后只能在 /upload 目录上传下载。


六、常见错误

❌ 登录失败:broken pipe

原因:Chroot 目录权限不对
✅ 解决:确保 /home/sftpuser 是 root:root 且 755


❌ 能 SSH 登录

✅ 确保 shell 是 /usr/sbin/nologin


七、可选增强(进阶)

  • 使用 SSH 密钥登录
  • 配置 多个 SFTP 用户组
  • 配合 fail2ban 防爆破
  • 日志监控:/var/log/auth.log

如果你愿意,可以告诉我:

  • 是否要 多用户
  • 是否要 Web 管理
  • 是否用 Docker

我可以直接给你一份完整配置示例。

0 踩