温馨提示×

sftp在debian如何设置

小樊
48
2026-10-06 13:42:40
栏目: 智能运维

下面以 Debian 为例,介绍如何安装和配置 SFTP(基于 OpenSSH)。


一、安装 OpenSSH Server(SFTP 依赖 SSH)

大多数 Debian 已自带,但如果没有:

sudo apt update
sudo apt install openssh-server

启动并设置开机自启:

sudo systemctl enable ssh
sudo systemctl start ssh

二、默认 SFTP 功能(简单方式)

只要 SSH 正常,SFTP 默认已可用:

sftp user@server_ip

⚠️ 默认情况下,用户可以使用 SSH 登录系统。


三、限制 SFTP 用户(仅 SFTP,禁止 SSH)

1️⃣ 创建 SFTP 用户

sudo adduser sftpuser

2️⃣ 修改 SSH 配置

编辑配置文件:

sudo nano /etc/ssh/sshd_config

在文件末尾添加:

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

3️⃣ 设置目录权限(非常重要)

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

创建可写目录:

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

4️⃣ 重启 SSH

sudo systemctl restart ssh

四、多用户 SFTP(推荐方式)

Match Group sftpusers
    ChrootDirectory /sftp/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no

创建组:

sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser

目录结构示例:

/sftp/sftpuser
/sftp/sftpuser/upload

五、防火墙(如启用)

sudo ufw allow 22

六、常见问题

  • ❌ broken pipe → Chroot 目录权限错误
  • ❌ 无法上传 → 没有写权限目录
  • ✅ 仅 SFTP 用户必须是 chroot 目录的 owner 为 root

如果你需要:

  • 使用 密钥登录
  • 配置 vsftpd(FTP)
  • Docker 中的 SFTP
  • 只读 / 只写用户

可以告诉我你的具体需求。

0 踩