在当今互联的数字世界中,安全高效的文件传输是现代计算的基石。无论您是 it 专业人员还是临时用户,在系统之间安全传输文件的能力都至关重要。本综合指南将引导您完成在 fedora 38 上设置 sftp(ssh 文件传输协议)的分步过程。
在 fedora 38 上安装和设置 sftp 服务器
第 1 步。在我们可以在 fedora 38 上安装 sftp 之前,重要的是要确保我们的系统是最新的软件包。这将确保我们可以访问最新功能和错误修复,并且我们可以毫无问题地安装 sftp:
sudo dnf update
第 2 步。安装 openssh。
如果尚未安装 openssh,则可以使用 dnf 包管理器轻松安装它。运行以下命令:
sudo dnf install openssh-server
此命令将下载并安装 openssh 服务器包以及任何必要的依赖项。
安装 openssh 后,您需要启动并启用该服务。运行以下命令:
sudo systemctl start sshd
sudo systemctl enable sshd
为了增强 openssh 设置的安全性,建议进行一些基本的配置更改。使用首选文本编辑器编辑 ssh 服务器配置文件:
sudo nano /etc/ssh/sshd_config
以下是您可能需要考虑的一些与安全相关的设置:
- 更改 ssh 端口:您可以将默认 ssh 端口 (22) 更改为自定义端口,以降低自动攻击的风险。查找显示的行并将其更改为所需的端口(例如,)。
#port 22
port 2222
- 允许 ssh 协议版本:出于安全原因,最好只允许 ssh 协议版本 2。确保该行未添加注释。
protocol 2
- 禁用根登录:要增强安全性,请禁用直接根登录。找到该行并将其更改为 。
permitrootlogin yes
permitrootlogin no
- 使用 ssh 密钥身份验证:请考虑使用 ssh 密钥身份验证以实现更安全的访问。您可以生成 ssh 密钥并在文件中对其进行配置。
sshd_config
进行这些更改后,保存文件并退出文本编辑器。然后,重新启动 openssh 服务以应用新配置:
sudo systemctl restart sshd
第 3 步。创建仅限 sftp 的用户。
在继续设置 sftp 之前,让我们了解创建仅限 sftp 的专用用户的重要性。这种做法增强了安全性,并允许您更有效地管理用户权限:
sudo useradd
您还可以指定其他用户信息,并使用以下选项创建主目录:-m
sudo useradd -m
为了确保用户只能使用 sftp 而不能获得 shell 访问权限,我们将他们的 shell 设置为 。替换为您创建的用户名:/usr/libexec/openssh/sftp-server
sudo usermod -s /usr/libexec/openssh/sftp-server
第 4 步。配置特定于用户的目录。
要管理特定于用户的目录,请为目录中的每个 sftp 用户创建一个目录。例如:/home
sudo mkdir /home/<username>
现在,将目录的所有权分配给相应的用户:
sudo chown:<username> /home/
第5步。为 sftp 配置 ssh。
要为 sftp 配置 ssh,您需要再次编辑该文件:sshd_config
sudo nano /etc/ssh/sshd_config
- chrootdirectory:要将 sftp 用户限制在其主目录中,请将以下行添加到文件中。替换为 sftp 用户的用户名:
sshd_config
match userchrootdirectory /home/%u
- 子系统:确保在文件中指定了 sftp 子系统。它应该看起来像这样:
sshd_config
subsystem sftp /usr/libexec/openssh/sftp-server
进行这些更改后,保存文件并重新启动 ssh 服务以应用配置:sshd_config
sudo systemctl restart sshd
第 6 步。测试 sftp 访问。
现在您的 sftp 服务器已设置完毕,是时候测试访问权限了。您可以使用任何 sftp 客户端连接到您的服务器。例如,如果您使用的是 linux 系统,则可以使用以下命令:sftp
sftp@<server_ip_or_hostname>
替换为您创建的 sftp 用户名以及服务器的 ip 地址或主机名。
连接后,您可以使用 sftp 轻松上传和下载文件。使用该命令将文件从本地系统上载到服务器,使用命令将文件从服务器下载到本地系统。put
get
put local_file remote_directory get remote_file local_directory
步骤 7.保护 sftp 设置。
若要进一步增强安全性,请考虑为 sftp 配置基于 ssh 密钥的身份验证。与基于密码的身份验证相比,此方法提供更高级别的安全性:
ssh-keygen -t rsa -b 4096
生成密钥对后,使用命令将公钥复制到服务器。将 替换为您的 sftp 用户名和服务器详细信息:ssh-copy-id
ssh-copy-id@<server_ip_or_hostname>
要确保仅允许基于密钥的身份验证,请在服务器上编辑该文件并将其设置为 :sshd_config
passwordauthentication
no
sudo nano /etc/ssh/sshd_config
更改此行:
passwordauthentication yes
自:
passwordauthentication no
保存文件并重新启动 ssh 服务:
sudo systemctl restart sshd
第8步。实施防火墙规则以限制访问。
确保允许 ssh 流量。运行以下命令,将 ssh 添加到允许的服务:
sudo firewall-cmd --permanent --add-service=ssh
如果您更改了默认 ssh 端口(在 openssh 配置部分中注明),请允许该自定义端口上的流量:
sudo firewall-cmd --permanent --add-port=<custom_port>/tcp
添加必要的规则后,重新加载防火墙配置以应用更改:
sudo firewall-cmd --reload
感谢您使用本教程在您的 fedora 38 系统上安装和设置 sftp 服务器。有关其他帮助或有用信息,我们建议您查看sftp官方网站。
未经允许不得转载:凯发k8ag旗舰厅 » 如何在 fedora 38 上安装和设置 sftp 服务器