我有一台安装了开放 ssh 的 Ubuntu 14.04 服务器。我想配置 sftp,让客户只能下载文件。换句话说,我将文件放在一个被限制的目录中。我需要确保他们只能访问包含其文件的目录,而不能访问其他任何内容。
最初我打算使用 vsftpd,但有人告诉我 sftp 是更好的选择。如果有我需要的文档就太好了。
我需要以下方面的帮助:
- 如何配置 sftp
- 如何设置用户帐户并将其用于 sftp
- 如何将账户关进监狱
答案1
设置/etc/ssh/sshd_config
Subsystem sftp internal-sftp -f AUTH -l VERBOSE
UsePAM yes
Match group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
创建组 sftp:
groupadd sftp
创建目录
sudo mkdir /ftpusers
sudo mkdir /ftpusers/HomeFolder
直接创建用户并附加新的 sftp 组:
sudo useradd -d /ftpusers/HomeFolder -m UserName -g sftp -s /bin/false
sudo passwd UserName
设置使用 ssh 进行 sftp 的权限:
chown root:root /ftpusers/HomeFolder
chmod 755 /ftpusers/HomeFolder
重启服务:
service ssh restart
请注意,新 sftp 用户的主文件夹必须被赋予 root 所有者。