debian

如何限制SFTP访问权限

小樊
53
2025-07-09 02:01:08
栏目: 编程语言

要限制SFTP访问权限,您需要按照以下步骤操作:

  1. 安装并配置OpenSSH服务器: 确保您的系统上已安装了OpenSSH服务器。在大多数Linux发行版中,可以使用以下命令安装:
sudo apt-get update
sudo apt-get install openssh-server
  1. 创建一个新的用户组: 为了更好地管理SFTP访问权限,您可以创建一个新的用户组,例如sftp_users,并将允许SFTP访问的用户添加到此组中。
sudo groupadd sftp_users
  1. 创建一个新用户并将其添加到sftp_users组: 创建一个新用户(例如,sftp_user),并设置其密码。然后将其添加到sftp_users组。
sudo adduser sftp_user
sudo passwd sftp_user
sudo usermod -aG sftp_users sftp_user
  1. 配置sshd_config文件: 编辑/etc/ssh/sshd_config文件以限制SFTP访问权限。
sudo nano /etc/ssh/sshd_config

在文件末尾添加以下内容:

# Limit SFTP access to the sftp_users group
Match Group sftp_users
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

这将限制sftp_users组的成员只能访问其主目录,并禁止TCP和X11转发。

  1. 限制用户访问特定目录: 要进一步限制用户访问特定目录,您需要在用户的主目录中创建一个名为.ssh的子目录,并在其中创建一个名为authorized_keys的文件。将允许访问的用户的公钥添加到此文件中。
mkdir /home/sftp_user/.ssh
chmod 700 /home/sftp_user/.ssh
touch /home/sftp_user/.ssh/authorized_keys
chmod 600 /home/sftp_user/.ssh/authorized_keys

将允许访问的用户的公钥(例如,id_rsa.pub)添加到authorized_keys文件中:

echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... user@example.com" >> /home/sftp_user/.ssh/authorized_keys
  1. 重启SSH服务: 保存并关闭sshd_config文件后,重启SSH服务以使更改生效。
sudo systemctl restart ssh

现在,您已成功限制了SFTP访问权限。只有sftp_users组的成员才能访问SFTP,并且他们只能访问其主目录及其子目录。

0
看了该问题的人还看了