如何在 Fedora 38 上安装和设置 SFTP 服务器

Linux命令 Edge插件网 1年前 (2023-10-05) 275次浏览 已收录 0个评论

在当今互联的数字世界中,安全高效的文件传输是现代计算的基石。无论您是 IT 专业人员还是临时用户,在系统之间安全传输文件的能力都至关重要。本综合指南将引导您完成在 Fedora 38 上设置 SFTP(SSH 文件传输协议)的分步过程。

如何在 Fedora 38 上安装和设置 SFTP 服务器

在 Fedora 38 上安装和设置 SFTP 服务器

第 1 步。在我们可以在 Fedora 38安装 SFTP 之前,重要的是要确保我们的系统是最新的软件包。这将确保我们可以访问最新功能和错误修复,并且我们可以毫无问题地安装 SFTP:

<span class="pln">sudo dnf update</span>

第 2 步。安装 OpenSSH。

如果尚未安装 OpenSSH,则可以使用 DNF 包管理器轻松安装它。运行以下命令:

<span class="pln">sudo dnf install openssh</span><span class="pun">-</span><span class="pln">server</span>

此命令将下载并安装 OpenSSH 服务器包以及任何必要的依赖项。

安装 OpenSSH 后,您需要启动并启用该服务。运行以下命令:

<span class="pln">sudo systemctl start sshd
sudo systemctl enable sshd</span>

为了增强 OpenSSH 设置的安全性,建议进行一些基本的配置更改。使用首选文本编辑器编辑 SSH 服务器配置文件:

<span class="pln">sudo nano </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">ssh</span><span class="pun">/</span><span class="pln">sshd_config</span>

以下是您可能需要考虑的一些与安全相关的设置:

  • 更改 SSH 端口:您可以将默认 SSH 端口 (22) 更改为自定义端口,以降低自动攻击的风险。查找显示的行并将其更改为所需的端口(例如,)。#Port 22Port 2222
  • 允许 SSH 协议版本:出于安全原因,最好只允许 SSH 协议版本 2。确保该行未添加注释。Protocol 2
  • 禁用根登录:要增强安全性,请禁用直接根登录。找到该行并将其更改为 。PermitRootLogin yesPermitRootLogin no
  • 使用 SSH 密钥身份验证:请考虑使用 SSH 密钥身份验证以实现更安全的访问。您可以生成 SSH 密钥并在文件中对其进行配置。sshd_config

进行这些更改后,保存文件并退出文本编辑器。然后,重新启动 OpenSSH 服务以应用新配置:

<span class="pln">sudo systemctl restart sshd</span>

第 3 步。创建仅限 SFTP 的用户。

在继续设置 SFTP 之前,让我们了解创建仅限 SFTP 的专用用户的重要性。这种做法增强了安全性,并允许您更有效地管理用户权限:

<span class="pln">sudo useradd </span><span class="str"><username></span>

您还可以指定其他用户信息,并使用以下选项创建主目录:-m

<span class="pln">sudo useradd </span><span class="pun">-</span><span class="pln">m </span><span class="str"><username></span>

为了确保用户只能使用 SFTP 而不能获得 shell 访问权限,我们将他们的 shell 设置为 。替换为您创建的用户名:/usr/libexec/openssh/sftp-server<username>

<span class="pln">sudo usermod </span><span class="pun">-</span><span class="pln">s </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">libexec</span><span class="pun">/</span><span class="pln">openssh</span><span class="pun">/</span><span class="pln">sftp</span><span class="pun">-</span><span class="pln">server </span><span class="str"><username></span>

第 4 步。配置特定于用户的目录。

要管理特定于用户的目录,请为目录中的每个 SFTP 用户创建一个目录。例如:/home

<span class="pln">sudo mkdir </span><span class="pun">/</span><span class="pln">home</span><span class="pun">/<</span><span class="pln">username</span><span class="pun">></span>

现在,将目录的所有权分配给相应的用户:

<span class="pln">sudo chown </span><span class="str"><username></span><span class="pun">:<</span><span class="pln">username</span><span class="pun">></span> <span class="str">/home/<username></span>

第5步。为 SFTP 配置 SSH。

要为 SFTP 配置 SSH,您需要再次编辑该文件:sshd_config

<span class="pln">sudo nano </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">ssh</span><span class="pun">/</span><span class="pln">sshd_config</span>
  • ChrootDirectory:要将 SFTP 用户限制在其主目录中,请将以下行添加到文件中。替换为 SFTP 用户的用户名:sshd_config<username>
<span class="typ">Match</span> <span class="typ">User</span> <span class="str"><username></span>
<span class="typ">ChrootDirectory</span> <span class="pun">/</span><span class="pln">home</span><span class="pun">/%</span><span class="pln">u</span>
  • 子系统:确保在文件中指定了 SFTP 子系统。它应该看起来像这样:sshd_config
<span class="typ">Subsystem</span><span class="pln"> sftp </span><span class="pun">/</span><span class="pln">usr</span><span class="pun">/</span><span class="pln">libexec</span><span class="pun">/</span><span class="pln">openssh</span><span class="pun">/</span><span class="pln">sftp</span><span class="pun">-</span><span class="pln">server</span>

进行这些更改后,保存文件并重新启动 SSH 服务以应用配置:sshd_config

<span class="pln">sudo systemctl restart sshd</span>

第 6 步。测试 SFTP 访问。

现在您的 SFTP 服务器已设置完毕,是时候测试访问权限了。您可以使用任何 SFTP 客户端连接到您的服务器。例如,如果您使用的是 Linux 系统,则可以使用以下命令:sftp

<span class="pln">sftp </span><span class="str"><username></span><span class="pun">@<</span><span class="pln">server_ip_or_hostname</span><span class="pun">></span>

替换为您创建的 SFTP 用户名以及服务器的 IP 地址或主机名。<username><server_ip_or_hostname>

连接后,您可以使用 SFTP 轻松上传和下载文件。使用该命令将文件从本地系统上载到服务器,使用命令将文件从服务器下载到本地系统。putget

<span class="pln">put local_file remote_directory
</span><span class="kwd">get</span><span class="pln"> remote_file local_directory</span>

步骤 7.保护 SFTP 设置。

若要进一步增强安全性,请考虑为 SFTP 配置基于 SSH 密钥的身份验证。与基于密码的身份验证相比,此方法提供更高级别的安全性:

<span class="pln">ssh</span><span class="pun">-</span><span class="pln">keygen </span><span class="pun">-</span><span class="pln">t rsa </span><span class="pun">-</span><span class="pln">b </span><span class="lit">4096</span>

生成密钥对后,使用命令将公钥复制到服务器。将 替换为您的 SFTP 用户名和服务器详细信息:ssh-copy-id<username><server_ip_or_hostname>

<span class="pln">ssh</span><span class="pun">-</span><span class="pln">copy</span><span class="pun">-</span><span class="pln">id </span><span class="str"><username></span><span class="pun">@<</span><span class="pln">server_ip_or_hostname</span><span class="pun">></span>

要确保仅允许基于密钥的身份验证,请在服务器上编辑该文件并将其设置为 :sshd_configPasswordAuthenticationno

<span class="pln">sudo nano </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">ssh</span><span class="pun">/</span><span class="pln">sshd_config</span>

更改此行:

<span class="typ">PasswordAuthentication</span><span class="pln"> yes</span>

自:

<span class="typ">PasswordAuthentication</span> <span class="kwd">no</span>

保存文件并重新启动 SSH 服务:

<span class="pln">sudo systemctl restart sshd</span>

第8步。实施防火墙规则以限制访问。

确保允许 SSH 流量。运行以下命令,将 SSH 添加到允许的服务:

<span class="pln">sudo firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">service</span><span class="pun">=</span><span class="pln">ssh</span>

如果您更改了默认 SSH 端口(在 OpenSSH 配置部分中注明),请允许该自定义端口上的流量:

<span class="pln">sudo firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">permanent </span><span class="pun">--</span><span class="kwd">add</span><span class="pun">-</span><span class="pln">port</span><span class="pun">=<</span><span class="pln">custom_port</span><span class="pun">>/</span><span class="pln">tcp</span>

添加必要的规则后,重新加载防火墙配置以应用更改:

<span class="pln">sudo firewall</span><span class="pun">-</span><span class="pln">cmd </span><span class="pun">--</span><span class="pln">reload</span>

感谢您使用本教程在您的 Fedora 38 系统上安装和设置 SFTP 服务器。有关其他帮助或有用信息,我们建议您查看SFTP官方网站。


Edge插件网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:如何在 Fedora 38 上安装和设置 SFTP 服务器
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址