温馨提示×

ubuntu sftp怎么配置用户

小樊
41
2026-09-20 14:47:18
栏目: 智能运维

在 Ubuntu 上配置 SFTP 用户(仅 SFTP、禁止 SSH 登录,或允许 SSH 登录)常见做法如下。下面以 最常用、最安全的“限制用户只能 SFTP 且锁定目录” 为例。


一、创建 SFTP 用户

sudo adduser sftpuser

按提示设置密码(可留空或设置)。


二、创建 SFTP 根目录(重要)

SFTP 根目录 属主必须是 root,且其他用户不可写。

sudo mkdir -p /sftp/sftpuser
sudo chown root:root /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser

再建一个可写目录:

sudo mkdir /sftp/sftpuser/upload
sudo chown sftpuser:sftpuser /sftp/sftpuser/upload

三、修改 SSH 配置(关键)

编辑配置文件:

sudo nano /etc/ssh/sshd_config

1️⃣ 注释或确认这一行

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

2️⃣ 添加 SFTP 子系统

Subsystem sftp internal-sftp

3️⃣ 添加用户限制

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

如果是多个用户,可写成:

Match Group sftpusers

四、重启 SSH

sudo systemctl restart ssh

五、测试 SFTP

sftp sftpuser@服务器IP

✅ 成功
❌ 若报错 broken pipe,通常是目录权限问题(非 root 属主)


六、常见问题

❓ 只能 SFTP,不能 SSH

上面配置已经实现 ✅

❓ 多个 SFTP 用户

sudo groupadd sftpusers
sudo usermod -aG sftpusers sftpuser

配置中改用:

Match Group sftpusers

七、可选:使用密钥登录

sudo mkdir /sftp/sftpuser/.ssh
sudo cp id_rsa.pub /sftp/sftpuser/.ssh/authorized_keys
sudo chown -R sftpuser:sftpuser /sftp/sftpuser/.ssh

并在 sshd_config 中:

PasswordAuthentication no

如果你需要:

  • ✅ 允许 SFTP + SSH
  • ✅ 使用 Docker
  • ✅ 多用户不同目录
  • ✅ 图形化工具(FileZilla)

可以告诉我你的具体场景。

0