centos

如何设置 CentOS SFTP 访问控制列表

小樊
84
2025-02-08 14:02:08
栏目: 智能运维

在 CentOS 上设置 SFTP 访问控制列表 (ACL) 可以通过以下步骤完成:

  1. 安装 OpenSSH 服务器: 确保你的 CentOS 系统上已经安装了 OpenSSH 服务器。如果没有安装,可以使用以下命令进行安装:

    sudo yum install openssh-server
    
  2. 创建用户和组: 创建一个用于 SFTP 访问的用户和一个用于管理 ACL 的组。例如:

    sudo groupadd sftpusers
    sudo useradd -m -G sftpusers -s /usr/sbin/nologin -d /home/sftpuser sftpuser
    sudo passwd sftpuser
    
  3. 设置密码: 为新创建的用户设置密码:

    sudo passwd sftpuser
    
  4. 编辑 SSH 配置文件: 打开 /etc/ssh/sshd_config 文件并进行以下修改:

    sudo nano /etc/ssh/sshd_config
    

    找到并修改以下配置项:

    PubkeyAuthentication yes
    PasswordAuthentication no
    AllowUsers sftpuser
    

    这将允许 sftpuser 通过公钥认证登录,并禁止密码认证。

  5. 创建 ACL 文件: 在用户的主目录下创建一个 .ssh/authorized_keys 文件,并添加用户的公钥。例如:

    sudo mkdir -p /home/sftpuser/.ssh
    sudo touch /home/sftpuser/.ssh/authorized_keys
    sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
    sudo chown sftpuser:sftpusers /home/sftpuser/.ssh
    sudo chown 700 /home/sftpuser/.ssh
    

    将用户的公钥添加到 authorized_keys 文件中:

    cat ~/.ssh/id_rsa.pub | ssh sftpuser@your_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
    
  6. 设置目录权限: 设置用户主目录和 .ssh 目录的权限:

    sudo chmod 755 /home/sftpuser
    sudo chmod 700 /home/sftpuser/.ssh
    sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
    
  7. 重启 SSH 服务: 重启 SSH 服务以应用更改:

    sudo systemctl restart sshd
    
  8. 测试 SFTP 访问: 使用 sftp 命令测试用户是否可以成功登录:

    sftp sftpuser@your_server
    

通过以上步骤,你已经成功设置了 CentOS 上的 SFTP 访问控制列表。

0
看了该问题的人还看了