linux

如何在Linux中限制SFTP访问

小樊
44
2025-06-13 17:47:12
栏目: 智能运维

在Linux中,您可以使用OpenSSH服务器软件来设置SFTP访问

  1. 安装OpenSSH服务器(如果尚未安装): 对于基于Debian的系统(如Ubuntu),请使用以下命令:

    sudo apt-get update
    sudo apt-get install openssh-server
    

    对于基于RPM的系统(如CentOS、Fedora),请使用以下命令:

    sudo yum update
    sudo yum install openssh-server
    
  2. 创建一个新的用户组,用于限制SFTP访问:

    sudo groupadd sftp_users
    
  3. 为新用户创建一个账户,并将其添加到sftp_users组中。在此过程中,您需要设置用户的密码和其他详细信息。例如,要创建名为sftp_user的用户,请执行以下命令:

    sudo adduser sftp_user
    sudo passwd sftp_user
    sudo usermod -aG sftp_users sftp_user
    
  4. 限制SFTP用户的根目录访问。编辑/etc/ssh/sshd_config文件,找到或添加以下内容:

    Match Group sftp_users
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

    这将限制sftp_users组的成员仅能访问其主目录。

  5. 如果需要,您可以针对特定用户进行更详细的限制。在sshd_config文件中,找到或添加以下内容(用实际用户名替换<username>):

    Match User <username>
        ChrootDirectory /path/to/restricted/directory
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
  6. 保存并关闭sshd_config文件。

  7. 重新启动SSH服务以应用更改:

    sudo systemctl restart ssh
    

现在,SFTP用户将被限制在其主目录中,无法访问其他用户的文件或系统文件。请注意,您可能需要根据您的具体需求调整这些设置。

0
看了该问题的人还看了