说明
在Ubuntu24 LTS配置专用SFTP账户,实现仅指定账户访问指定目录进行上传下载。不可做其他任何操作。
配置
root账户ssh访问节点。
配置专用目录
bash
mkdir -p /hdd/dev-sftp/chroot/upload
创建用户和组
bash
groupadd sftp_users
useradd -G sftp_users -s /usr/sbin/nologin -d /hdd/dev-sftp/chroot sftpuser
passwd sftpuser
配置目录权限
bash
chown root:root /hdd/dev-sftp
chmod 755 /hdd/dev-sftp
chown -R sftpuser:sftp_users /hdd/dev-sftp/chroot/upload 2>/dev/null || true
chown root:root /hdd/dev-sftp/chroot
chmod 755 /hdd/dev-sftp/chroot
修改配置文件
bash
vim /etc/ssh/sshd_config
在最后追加以下内容
bash
# 启用内置的 SFTP 子系统 (性能更好)
Subsystem sftp internal-sftp
# 匹配 sftp_users 组的所有用户
Match Group sftp_users
# 将用户限制在其家目录 (/hdd/dev-sftp/chroot) 内
ChrootDirectory %h
# 强制用户只能使用 SFTP 命令,无法执行其他操作
ForceCommand internal-sftp
# 禁用不必要的功能以增强安全性
AllowTcpForwarding no
X11Forwarding no
PermitTunnel no
使配置生效
bash
# 应当无输出信息
sshd -t
systemctl restart ssh
访问验证
bash
# 应当成功
sftp sftpuser@localhost
# 应当失败
ssh sftpuser@localhost
使用sftp工具测试




可在upload目录进行上传和下载操作,且无法切换到其他目录。