如何在 Rocky Linux 9 或 8 上安装 SSH

SSH(安全外壳)是一种用于远程访问和管理 Linux 服务器的安全协议。它提供加密通信,确保客户端和服务器之间传输的数据的安全。SSH 是系统管理员和开发人员的基本工具,使他们能够通过不安全的网络安全地执行各种任务,例如执行命令、传输文件和管理网络服务。

要在 Rocky Linux 9 或 8 上设置 SSH,您可以使用默认存储库进行简单的安装过程。本指南将引导您完成安装步骤并提供有关初始配置的提示,以增强安全性和可用性。

在安装 SSH 之前更新 Rocky Linux

在 Rocky Linux 上安装和配置 SSH 之前,确保系统软件包是最新的至关重要。这不仅可以保证操作更顺畅,还可以最大限度地减少潜在的软件冲突。

要更新您的 Rocky Linux 系统,请使用以下命令:

sudo dnf upgrade --refresh

通过 DNF 命令安装 SSH

下一步涉及验证 OpenSSH 服务器是否已在您的 Rocky Linux 系统上。可以通过执行以下命令来确定:

rpm -qa | grep openssh-server

如果安装了 OpenSSH 服务器,此命令将返回相关输出。如果没有输出,则表示您的系统上没有 OpenSSH 服务器。要解决此问题并安装 OpenSSH 服务器,请使用以下命令:

sudo dnf install openssh-server

启用 SSH(SSHD)服务

成功安装 OpenSSH 服务器后,必须在 systemd 框架内启用 SSHD 服务。这可确保每次系统重启后 SSH 守护程序都会自动初始化。为此,请执行以下命令:

sudo systemctl enable sshd

现在将 SSHD 服务设置为自动启动,您可以使用以下命令手动启动 SSH 服务器:

sudo systemctl start sshd

为了验证目的并确保 SSH 服务器正常运行,您可以使用以下命令检查其状态:

sudo systemctl status sshd

要确认默认端口 (22) 现在正在主动监听传入的 SSH 连接,请运行:

sudo ss -lt

在 Rocky Linux 9 或 8 上通过 SSH 连接到远程服务器

在 Rocky Linux 系统上正确设置 SSH 后,您现在可以建立与远程服务器的连接。以下是有关如何在各种连接场景中使用 SSH 的详细说明:

在 Rocky Linux 上使用密码验证进行 SSH 连接

要使用基于密码身份验证的 SSH 建立与远程服务器的连接,请使用以下命令:

ssh username@remote_server

在这里,将“username”替换为您的实际用户名,将“remote_server”替换为所需远程服务器的 IP 地址或主机名。执行后,系统将提示您输入密码进行身份验证。

使用公钥身份验证通过 SSH 进行连接

SSH 为那些喜欢更安全连接方法的用户提供公钥身份验证。要使用此方法连接,命令如下:

ssh -i /path/to/private_key username@remote_server

在此命令中,将“/path/to/private_key”替换为您的私钥文件的路径。同样,将“username”替换为您的用户名,将“remote_server”替换为远程服务器的 IP 地址或主机名。此方法无需输入密码,而是依靠提供的私钥进行身份验证。

指定 SSH 连接的备用端口

虽然 SSH 默认使用端口 22 进行连接,但某些远程服务器可能使用不同的端口。要在连接期间指定备用端口,请使用:

ssh -p 2222 username@remote_server

在此示例中,将“2222”替换为远程服务器使用的端口号。

使用 SSH 进行 SCP 安全文件传输

SCP(安全复制)是一种强大的命令行实用程序,可通过 SSH 在系统之间安全地传输文件。要将文件从本地 Rocky Linux 系统传输到远程服务器,命令如下:

scp /path/to/local/file username@remote_server:/path/to/remote/directory

将“/path/to/local/file”替换为您要传输的文件路径。同样,将“username”调整为您的用户名,“remote_server”调整为远程服务器的 IP 地址或主机名,“/path/to/remote/directory”调整为您希望放置传输文件的远程服务器上的目录路径。

在 Rocky Linux 上配置 SSH

优化 SSH 配置可以增强服务器的安全性和性能。SSH 配置文件位于 /etc/ssh/sshd_config,包含各种参数,可以根据特定需求进行调整。虽然以下配置仅仅是示例,但它们可能会有所帮助,具体取决于您的服务器或桌面设置。

禁用 SSH 的 GSSAPI 身份验证

GSSAPI 身份验证虽然有用,但有时会在建立 SSH 连接时引入延迟。为了缓解这种情况,您可以通过将以下行附加到 SSH 配置文件来禁用它:

GSSAPIAuthentication no

修改 SSH 的 SSH 会话超时

调整会话超时有助于管理不活动的 SSH 会话。要将服务器设置为每 5 分钟发送一次保持活动消息,并在连续两条消息无人应答时终止会话,请添加:

ClientAliveInterval 300
ClientAliveCountMax 2

禁止 SSH 的 Root 登录

为了增强安全性,尤其是针对暴力攻击,建议禁用 root 登录。这可以通过以下方式实现:

PermitRootLogin no

实现 SSH 的公钥认证

公钥认证提供了一种比基于密码的方法更安全的替代方法。要进行设置,首先需要生成一个新的 SSH 密钥对:

ssh-keygen -t rsa -b 4096

接下来,将公钥传输到所需的远程服务器:

ssh-copy-id user@remote_server

确保将“user”替换为您的用户名,将“remote_server”替换为适当的 IP 地址或主机名。最后,在 SSH 配置中启用公钥认证:

PubkeyAuthentication yes

限制 SSH 的 SSH 访问

您可以将 SSH 访问权限限制为特定用户或组以增强安全性。要实现这一点,请添加:

AllowUsers user1 user2
AllowGroups group1 group2

将占位符替换为您要授予访问权限的实际用户名或组名。

更改 SSH 的 SSH 端口

默认情况下,SSH 在端口 22 上运行。鉴于其恶名,更改此端口可以阻止未经授权的访问尝试。要分配新端口,请使用:

Port <port_number>

建议选择 1024 至 65535 之间未被其他服务占用的端口号。

使用 Firewalld 保护 SSH

确保在使用 VPS 或远程服务器环境时不间断访问。在对 Firewalld 进行任何更改之前,尤其是当您远程访问系统时,必须将您的 IP 地址列入白名单。如果不这样做,在应用防火墙更改后可能会无意中将您锁定在服务器之外。

要在 Firewalld 中将您的 IP 地址列入白名单,请使用以下命令:

sudo firewall-cmd --permanent --add-source=<your_ip_address>

代替使用您的实际 IP 地址。

一旦您的 IP 地址被列入白名单,您就可以安全地将 SSH 服务纳入 Firewalld:

sudo firewall-cmd --add-service=ssh --permanent

进行必要的调整后,应用新的 Firewalld 配置:

sudo firewall-cmd --reload

要验证 Firewalld 中是否包含 SSH 服务,请运行以下命令:

sudo firewall-cmd --list-services | grep ssh

此命令将确认 SSH 服务是否通过防火墙,确保您的远程连接保持安全且可访问。

结论

在 Rocky Linux 系统上成功安装和配置 SSH 后,您可以安全地远程管理服务器。定期更新 SSH 配置并应用最佳实践来维护安全性。通过遵循初始设置提示,您可以确保更安全、更高效的远程管理体验。享受 SSH 为安全服务器管理提供的强大功能。

Joshua James
跟我来
Joshua James 的最新帖子 (查看全部)

发表评论