debian

如何限制Debian SFTP访问

小樊
39
2025-07-15 04:16:58
栏目: 智能运维

要限制Debian上的SFTP访问,您可以使用以下方法:

  1. 使用SSH密钥认证: 通过使用SSH密钥认证而不是密码认证,您可以更好地控制哪些用户可以访问SFTP。要设置SSH密钥认证,请按照以下步骤操作:

    a. 在客户端计算机上生成SSH密钥对(如果尚未生成):

    ssh-keygen -t rsa -b 4096
    

    b. 将公钥复制到服务器上的用户主目录中的.ssh/authorized_keys文件中。确保该文件的权限设置正确:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    

    c. 在服务器的/etc/ssh/sshd_config文件中启用公钥认证并禁用密码认证:

    PubkeyAuthentication yes
    PasswordAuthentication no
    

    d. 重启SSH服务以应用更改:

    sudo systemctl restart ssh
    
  2. 使用Chroot限制用户访问: Chroot可以将用户的根目录限制在其主目录中,从而防止他们访问其他用户的文件和系统目录。要设置Chroot,请按照以下步骤操作:

    a. 确保用户的根目录具有正确的所有权和权限:

    chown root:root /home/username
    chmod 755 /home/username
    

    b. 在用户的根目录中创建一个名为uploads的子目录,以便用户可以在其中存储文件:

    mkdir /home/username/uploads
    chown username:username /home/username/uploads
    

    c. 编辑服务器的/etc/ssh/sshd_config文件,为SFTP用户添加以下配置:

    Match User sftp_user
        ChrootDirectory %h
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    

    d. 重启SSH服务以应用更改:

    sudo systemctl restart ssh
    
  3. 使用防火墙限制访问: 您还可以使用防火墙(如UFW)限制对SFTP端口的访问。例如,要允许仅来自特定IP地址的连接,请运行以下命令:

    sudo ufw allow from <IP_ADDRESS> to any port 22
    

通过这些方法,您可以有效地限制Debian上的SFTP访问。

0
看了该问题的人还看了