如何在 Ubuntu 22.04 Jammy Jellyfish Linux 上设置 SFTP 服务器
在本教程中,我们将向您展示如何在 Ubuntu 22.04 Jammy Jellyfish 上设置 SFTP 服务器。
FTP 是一种用于访问和传输文件的出色协议,但它具有作为明文协议的缺点。换句话说,通过互联网连接使用并不安全,因为您的凭据和数据在没有加密的情况下传输。 SFTP 中的“S”代表“安全”,通过 SSH 传输 FTP 协议,提供建立安全连接所需的加密。
在本教程中您将学习:
如何安装和配置 SSH 守护进程
如何设置 SFTP 用户帐户和组
如何通过 GUI 连接到 SFTP 服务器
如何通过命令行连接SFTP服务器
配置 SSH 守护进程
SFTP 需要 SSH,因此如果您的系统上尚未安装 SSH 服务器,请通过打开命令行终端并执行以下命令来安装它:
$ sudo apt update $ sudo apt install ssh
安装 SSH 后,我们需要对 SSHD 配置文件进行一些更改。使用 nano 或您最喜欢的文本编辑器以 root 权限打开它:
$ sudo nano /etc/ssh/sshd_config
滚动到文件底部并在最后添加以下 5 行:
Match group sftp ChrootDirectory /home X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp
上面的行将允许 sftp 组中的用户通过 SFTP 访问其主目录,但拒绝他们正常的 SSH 访问,因此他们永远无法访问 shell。粘贴这些行后,保存并关闭配置文件。
执行以下命令以重新启动 SSH 服务以使这些新更改生效:
$ sudo systemctl restart ssh
正确配置 SSH 后,我们可以继续为用户设置 SFTP 帐户。
创建SFTP用户帐户
现在我们需要为我们希望授予 SFTP 访问权限的任何人创建用户帐户。
创建一个名为
sftp
的新用户组。我们所有的 SFTP 用户都需要属于该组。$ sudo addgroup sftp
接下来,创建一个新用户。在此示例中,我们将简单地调用我们的
sftpuser
,但您可以将其命名为任何您想要的名称。另请务必将此用户添加到我们刚刚创建的sftp
组中。$ sudo useradd -m sftpuser -g sftp
为新创建的
sftpuser
设置密码。您需要输入两次新密码进行验证。$ sudo passwd sftpuser
最后,让我们授予用户对其主目录的完全访问权限,但拒绝系统上所有其他用户对该目录的访问权限:
$ sudo chmod 700 /home/sftpuser/
我们的 SFTP 配置已完成,现在我们可以登录以确保一切正常工作。
使用命令行登录 SFTP
您可以使用系统的主机名或 IP 地址通过 SFTP 登录。要从与您刚刚配置 SFTP 相同的系统进行测试,连接到环回地址 127.0.0.1
就可以正常工作。
打开终端并使用 sftp 命令和 sftpuser 帐户(或您决定使用的任何名称)登录。您将需要输入我们在上一节中为此用户配置的密码。
$ sftp sftpuser@127.0.0.1
导航到用户的主目录,因为这是它唯一拥有权限的位置。在这里,尝试创建一个新目录以确认一切都按预期工作:
sftp> cd sftpuser sftp> mkdir sftp-test sftp> ls sftp-test sftp>
使用 GUI 登录 SFTP
如果您更喜欢使用 GUI 应用程序连接到 SFTP 服务器,则有很多可用选项。您可以使用您喜欢的 SFTP 客户端或默认内置于 Ubuntu 22.04 中的客户端 – GNOME 上的 Nautilus 文件管理器。
从“应用程序”菜单中打开 Nautilus 文件管理器。
单击“其他位置”,然后在窗口底部的“连接到服务器”框中输入
sftp://127.0.0.1
,然后单击连接。输入我们之前设置的 SFTP 帐户凭据,然后单击“连接”。
连接成功后,您将能够打开主目录并查看之前创建的测试目录。
结束语
在 SFTP 服务器文章中,我们了解了如何创建 SFTP 服务器并随后在 Ubuntu 22.04 Jammy Jellyfish Linux 上登录它。我们还介绍了如何使用命令行和 Ubuntu GUI 连接到 FTP 服务器。
在本文中,我们了解了如何通过在我们的系统上设置 SFTP 来保护 FTP 协议的安全。通过遵循本指南中的说明,本地网络或互联网上的计算机可以通过命令行或其首选 SFTP 客户端安全地访问您的系统以存储和检索文件。