[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
SSHD 将使用 SFTP 服务器代码,而不是通过更改上述行来运行 SFTP 服务器。
更改配置文件后,保存文件并使用键盘快捷键 CTRL+S 和 CTRL+X 退出。
更改后,我们需要重新启动 SSHD 守护程序以使更改生效。
sudo systemctl restart sshd
步骤 3 – 创建用户(SFTP 用户)
创建一个仅对文档根目录具有 SFTP 访问权限的新用户是一种极好的做法。 不建议将具有 Sudo 权限的用户添加到 Web 服务器文档根目录。 使用 adduser 命令创建一个新用户:
sudo adduser sftpuser
终端将要求提供一些信息,例如设置密码和用户信息。 它还会询问其他一些详细信息,因此请将它们留空或提供正确的信息。
一个名为的新用户 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”用户名替换为您设置的用户名。
将上述内容添加到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 目录权限非常严格。
- 我们将首先检查 var 的当前权限和所有权:
sudo ls -ld /var/
- 默认情况下,权限应为 755,所有者应为 root。 如果没有,则执行下面给出的命令以设置适当的权限:
sudo chmod 755 /var/
- 现在使用此命令设置正确的所有权:
sudo chown root:root /var/
- 由于我们已将“/var/www/”设置为 chroot 目录。 现在设置 chroot 目录的正确所有权:
sudo chown root:root /var/www/
- 要允许组写入文档根目录,请将其权限设置为 755:
sudo chmod 755 /var/www/html/
- 要将“/var/www/html”文档根目录及其其他目录和文件的所有权授予 www-data 组,请使用以下给定的命令:
sudo chown -R www-data:www-data /var/www/html*
- 现在使用以下命令为放置在“/var/www/html”文档根目录中的内容授予 755 权限:
sudo find /var/www/html/ -type d -exec chmod 775 {} ;
- 上述命令将授予 SFTP 用户对目录的读、写和可执行权限。
我们还需要为文档根目录中存在的所有文件授予 664 权限,以允许所有者和 SFTP 用户组读取和写入文件:
sudo find /var/www/html/ -type f -exec chmod 664 {} ;
- 现在进行最后一步,确保所有新文件和目录都获取为新创建的 SFTP 用户创建的 www-data 组:
sudo find /var/www/html -type d -exec chmod g+s {} ;
同样,对 chroot 应用相同的权限:
sudo chmod 755 /var/www/
恭喜! 您的新 SFTP 用户已创建并添加到网络服务器文档根目录。 您现在可以登录到 SFTP。
结论
在本操作指南中,我们学习了如何安装和配置 SSH 以使用 SFTP 服务器代码。 之后,我们创建了一个新用户,将他们限制为文档 root,并禁用了他们的 SSH 访问。 然后我们将用户添加到 webserver 文档根目录中,以允许用户读取、写入和执行文档根目录中的文件。
[ad_2]