限制 SFTP 用户访问指定目录

sco*_*ail 10 ssh sftp chroot openssh 14.04

我有一个 Ubuntu 14.04 服务器安装了开放的 ssh。我想为客户配置 sftp 以便只能下载文件。换句话说,我将文件放在他们被监禁的目录中。我需要确保他们只能访问包含文件的目录,而不能访问其他目录。

最初我打算使用 vsftpd,但有人告诉我 sftp 是更好的选择。如果有一些关于我需要的文件,那就太好了。

我需要以下方面的帮助:

  1. 如何配置sftp
  2. 如何设置用户帐户并将其用于 sftp
  3. 如何将帐户设置为监狱

270*_*974 12

设置 /etc/ssh/sshd_config

Subsystem sftp internal-sftp -f AUTH -l VERBOSE
UsePAM yes
Match group sftp
  ChrootDirectory %h
  ForceCommand internal-sftp
  AllowTcpForwarding no
Run Code Online (Sandbox Code Playgroud)

创建组 sftp:

groupadd sftp
Run Code Online (Sandbox Code Playgroud)

创建目录

sudo mkdir /ftpusers
sudo mkdir /ftpusers/HomeFolder
Run Code Online (Sandbox Code Playgroud)

使用附加的新 sftp 组直接创建用户:

sudo useradd -d /ftpusers/HomeFolder -m UserName -g sftp -s /bin/false
sudo passwd UserName
Run Code Online (Sandbox Code Playgroud)

为 sftp 设置与 ssh 一起使用的权限:

chown root:root /ftpusers/HomeFolder
chmod 755 /ftpusers/HomeFolder
Run Code Online (Sandbox Code Playgroud)

重启服务:

service ssh restart
Run Code Online (Sandbox Code Playgroud)

请注意,必须为新 sftp 用户的主文件夹赋予 root 所有者。