SFTP配置教程
SFTP 配置教程,适用于 Armbian/Debian 系统,实现以下目标:
- 创建用户名为
blog
的 SFTP 用户; -
密码设为
awang
; -
限制该用户只能使用 SFTP,不能登录 shell;
-
共享目录为
/opt/sftp
,并确保权限正确。
🛠️ 1. 创建用户和目录
# 创建共享目录
sudo mkdir -p /opt/sftp/blog # 为 blog 用户创建子目录
# 添加 blog 用户(无 shell 权限,不能登录系统)
sudo useradd -m -d /opt/sftp/blog -s /usr/sbin/nologin blog
# 设置密码为 awang
echo "blog:awang" | sudo chpasswd
# 修改目录权限
sudo chown root:root /opt/sftp
sudo chmod 755 /opt/sftp
sudo chown blog:blog /opt/sftp/blog
⚙️ 2. 修改 SSH 配置启用独立 SFTP 权限
编辑 /etc/ssh/sshd_config
:
sudo nano /etc/ssh/sshd_config
添加或修改以下内容(建议放在文件末尾):
Subsystem sftp internal-sftp
# 限制 blog 用户只用 SFTP,不允许 shell 登录
Match User blog
ChrootDirectory /opt/sftp
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
确保以下配置存在(否则 SFTP 无法正常使用):
Subsystem sftp internal-sftp
🔁 3. 重启 SSH 服务
sudo systemctl restart ssh
✅ 4. 测试登录
使用以下命令测试 SFTP 是否正常:
sftp blog@localhost
输入密码 awang
后应自动进入 /
,实际就是 /opt/sftp
被 chroot 了。用户拥有 /blog
的写权限。
📁 目录结构与权限复查
# 确保权限正确(Chroot 的目录必须由 root 拥有)
ls -ld /opt/sftp # root:root 755
ls -ld /opt/sftp/blog # blog:blog 700 或 755