如何为 Web 服务器文档根创建 SFTP 用户

[ad_1]

SFTP(SSH/安全文件传输协议)是一种网络传输标准,用于通过远程网络传输、访问和管理文件。 它包含 SSH(Secure Shell),使其比 FTP 协议安全得多。

文件通过 SFTP 中的单个控制通道传输。 它需要身份验证并在端口 22 上运行。在 SFTP 中,SSH shell 提供加密以帮助保护通过 SFTP 传输的用户名、密码和其他个人数据。

在本操作指南中,我们将学习为 Web 服务器文档根目录创建 SFTP 用户。

步骤 1 – 安装 SSH(安全外壳)

SFTP 是一种非常安全的文件传输协议,因为 SSH 为通过网络传输的数据提供加密。 SSH 主要默认安装在 Linux 发行版上,但如果您的系统中没有预装它,那么您可以使用下面给出的命令来安装它:

sudo apt install ssh 

如果已经安装,该命令将升级 OpenSSH 软件包。

步骤 2 – 配置 SSH 以使用 SFTP 服务器代码

现在在文本编辑器中打开 SSH 的配置文件,将其修改为 SFTP 服务器代码。 这里我们将使用 nano 编辑器来编辑配置文件。

sudo nano /etc/ssh/sshd_config 

找到从“Subsystem sftp”开始的行。

通过在行首添加 # 来注释该行,并在该行之后写入以下行,如下面的屏幕截图所示:

Subsystem sftp internal-sftp

添加子系统 sftp internal-sftp

SSHD 将使用 SFTP 服务器代码,而不是通过更改上述行来运行 SFTP 服务器。

更改配置文件后,保存文件并使用键盘快捷键 CTRL+S 和 CTRL+X 退出。

更改后,我们需要重新启动 SSHD 守护程序以使更改生效。

sudo systemctl restart sshd 

步骤 3 – 创建用户(SFTP 用户)

创建一个仅对文档根目录具有 SFTP 访问权限的新用户是一种极好的做法。 不建议将具有 Sudo 权限的用户添加到 Web 服务器文档根目录。 使用 adduser 命令创建一个新用户:

sudo adduser sftpuser 

终端将要求提供一些信息,例如设置密码和用户信息。 它还会询问其他一些详细信息,因此请将它们留空或提供正确的信息。

须藤添加用户 sftp

一个名为的新用户 sftpuser 已成功创建。

步骤 4 – 在 SSH 配置文件中创建匹配用户指令

现在我们将此用户限制为文档根目录,我们还将禁用用户对 SSH 的访问,以便用户通过 SFTP 登录。

要限制用户的访问,请在任何文本编辑器中打开 SSH 的配置文件:

sudo nano /etc/ssh/sshd_config 

现在转到文件末尾并在“sshd_config”配置文件中添加以下内容:

Match User sftpuser
        ForceCommand internal-sftp 
        ChrootDirectory /var/www/
        PasswordAuthentication yes
        X11Forwarding no 
        AllowTcpForwarding no 

确保将“sftpuser”用户名替换为您设置的用户名。

在 sshd_config 中匹配用户 sftpuser

将上述内容添加到SSH配置文件后,使用CTRL+S和CTRL+X快捷键保存退出。

要检查语法并验证一切是否顺利,您可以执行以下命令:

sudo sshd -t 

如果没有发生错误,我们可以重新加载 SSH 服务以使更改生效。

sudo systemctl restart sshd 

步骤 5 – 将 SFTP 用户添加到 www-data 组

现在我们将通过执行以下命令将用户添加到 www-data 组:

sudo usermod -a -G www-data sftpuser 

成功运行后,将不显示任何输出。

步骤 6 – 设置文档根目录权限

请非常仔细地遵循后续说明,因为 SFTP 对 chroot 目录权限非常严格。

  1. 我们将首先检查 var 的当前权限和所有权:
    sudo ls -ld /var/ 
    
  2. 默认情况下,权限应为 755,所有者应为 root。 如果没有,则执行下面给出的命令以设置适当的权限:
    sudo chmod 755 /var/ 
    
  3. 现在使用此命令设置正确的所有权:
    sudo chown root:root /var/ 
    
  4. 同样,对 chroot 应用相同的权限:

    sudo chmod 755 /var/www/ 
    
  5. 由于我们已将“/var/www/”设置为 chroot 目录。 现在设置 chroot 目录的正确所有权:
    sudo chown root:root /var/www/ 
    
  6. 要允许组写入文档根目录,请将其权限设置为 755:
    sudo chmod 755 /var/www/html/ 
    
  7. 要将“/var/www/html”文档根目录及其其他目录和文件的所有权授予 www-data 组,请使用以下给定的命令:
    sudo chown -R www-data:www-data /var/www/html* 
    
  8. 现在使用以下命令为放置在“/var/www/html”文档根目录中的内容授予 755 权限:
    sudo find /var/www/html/ -type d -exec chmod 775 {} ; 
    
  9. 上述命令将授予 SFTP 用户对目录的读、写和可执行权限。

    我们还需要为文档根目录中存在的所有文件授予 664 权限,以允许所有者和 SFTP 用户组读取和写入文件:

    sudo find /var/www/html/ -type f -exec chmod 664 {} ; 
    
  10. 现在进行最后一步,确保所有新文件和目录都获取为新创建的 SFTP 用户创建的 www-data 组:
    sudo find /var/www/html -type d -exec chmod g+s {} ; 
    

恭喜! 您的新 SFTP 用户已创建并添加到网络服务器文档根目录。 您现在可以登录到 SFTP。

结论

在本操作指南中,我们学习了如何安装和配置 SSH 以使用 SFTP 服务器代码。 之后,我们创建了一个新用户,将他们限制为文档 root,并禁用了他们的 SSH 访问。 然后我们将用户添加到 webserver 文档根目录中,以允许用户读取、写入和执行文档根目录中的文件。

[ad_2]

Related Posts