Debian 创建一个纯 SFTP 用户环境

Debian 创建一个纯 SFTP 用户环境
Yuban前言
在某些场景下,我们希望给某些用户提供 SFTP 文件上传/下载权限,而不允许他们使用 SSH 登录系统。本文将介绍如何在 Debian 系统上创建一个纯 SFTP 用户环境,只允许使用 SFTP,禁止 SSH shell 访问。
一、前提条件
- 已安装并启用了 OpenSSH 服务。
- 拥有一台 Debian 服务器的 root 权限或 sudo 权限。
二、创建 SFTP 用户组和用户
1 | # 创建 SFTP 用户组 |
或者
1 | # 创建一个用户,仅允许使用 SFTP,禁用 shell |
如果你只是为了创建账号,不需要填写这些信息,直接按回车(Enter)跳过即可,例如:
1 | Full Name []: ← 直接按回车 |
输入 Y 或直接回车就完成了。
三、配置用户目录权限
OpenSSH 要求 SFTP 的根目录不能被用户写入,因此需要设置一个只读根目录,并在其下创建一个可写子目录:
1 | # 设置根目录权限(必须是 root 拥有) |
四、配置 OpenSSH 的 SFTP 限制
编辑 SSH 配置文件:
1 | sudo nano /etc/ssh/sshd_config |
在文件末尾添加以下内容:
1 | Match Group sftpusers |
说明:
ChrootDirectory %h
:将用户限制在自己的主目录。ForceCommand internal-sftp
:强制使用 SFTP。- 禁用端口转发和 X11 转发以增强安全性。
五、重启 SSH 服务
1 | sudo systemctl restart ssh |
六、安全建议
- 每个用户独立目录
/home/用户名/uploads
。 - 建议结合 fail2ban 或防火墙防止暴力破解。
- 可进一步使用证书认证替代密码。
结语
通过以上步骤,我们成功在 Debian 系统中创建了一个安全、隔离、无法登录 Shell 的 SFTP 用户环境,适合用于文件托管、自动上传等场景。相比直接开放 SSH,这种方式不仅更安全,还能精细控制用户权限。
在实际使用中,建议定期审查 SFTP 用户权限、访问日志,并结合防火墙和审计工具提升系统整体安全性。
⚠️ 免责声明:本文仅供个人学习与技术研究使用。
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果