centos

centos如何限制sftp访问

小樊
44
2025-04-24 20:18:22
栏目: 智能运维

在CentOS系统中,您可以通过配置SSH和SFTP来限制用户的访问。以下是一些步骤和示例,帮助您实现这一目标:

  1. 安装OpenSSH服务器(如果尚未安装):

    sudo yum install openssh-server
    
  2. 创建一个新的用户或使用现有用户: 如果您还没有一个专门用于SFTP的用户,可以创建一个新用户:

    sudo adduser sftpuser
    sudo passwd sftpuser
    
  3. 配置SSH以限制SFTP访问: 编辑SSH配置文件 /etc/ssh/sshd_config

    sudo vi /etc/ssh/sshd_config
    

    找到并修改以下行:

    # 子系统 sftp 内置
    Subsystem sftp /usr/libexec/openssh/sftp-server
    

    确保没有其他子系统配置干扰SFTP。

  4. 限制用户访问特定目录: 您可以使用 ChrootDirectory 指令将用户的根目录限制在特定位置。编辑 /etc/ssh/sshd_config 文件,添加或修改以下行:

    Match User sftpuser
        ChrootDirectory /home/sftpuser
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

    这将把 sftpuser 用户的根目录限制在 /home/sftpuser,并且只允许SFTP访问。

  5. 设置目录权限: 确保 ChrootDirectory 指定的目录及其所有父目录的权限设置正确:

    sudo chown root:root /home/sftpuser
    sudo chmod 755 /home/sftpuser
    

    对于 sftpuser 用户的主目录,确保其权限不允许写入:

    sudo chown sftpuser:sftpuser /home/sftpuser
    sudo chmod 755 /home/sftpuser
    
  6. 重启SSH服务: 使配置生效:

    sudo systemctl restart sshd
    

通过以上步骤,您可以成功限制CentOS系统中的SFTP访问,确保用户只能访问指定的目录,并且不能进行SSH登录或其他操作。

0
看了该问题的人还看了