SSH 是一种广泛使用的协议,主要由系统管理员用来安全地登录到远程服务器。 它允许他们通过命令行访问远程系统,就好像他们就坐在服务器上一样。 在这篇文章中,我们将描述如何在 CentOS 系统上启用 SSH 并使用 SSH 客户端连接到它。 我们还将描述如何配置 SSH 服务器。
对于 Ubuntu 操作系统,请访问这篇文章了解如何在 Ubuntu 上启用 SSH。
笔记: 我们已经演示了程序 CentOS 8 机器.
第 1 步:安装 OpenSSH 服务器
首先,您必须在要通过 SSH 远程访问的机器上安装 OpenSSH 服务器。 使用以下命令在您的 CentOS 机器上安装 OpenSSH 服务器:
$ sudo dnf install openssh-server
Enter sudo 密码,然后您将看到安装开始。 按 是的 如果提示确认。
这应该在您的系统上安装 OpenSSH 服务器。
第 2 步:启动 SSH 守护程序并验证状态
现在 SSH 已经安装好了,你可以启动它的服务了。 使用以下命令启动 SSH 守护进程:
$ sudo systemctl start ssh
然后要验证 SSH 守护程序是否已启动,请使用以下命令:
$ sudo systemctl status sshd
第 3 步:允许 SSH 通过防火墙
如果您的 CentOS 系统上启用了防火墙,它将阻止传入的 SSH 流量。 要允许传入的 SSH 流量,您需要在防火墙中添加一条规则。 SSH 使用的默认端口是 22。所以规则应该打开端口 22。
使用以下命令允许端口 22 上的传入 SSH 流量:
$ sudo firewall-cmd --permanent --add-port=22/tcp
此命令将在您的防火墙中添加一条规则,该规则将允许端口 22 上的流量。如果您为 22 以外的端口配置了 SSH,请确保在防火墙规则中使用该端口。
第 4 步:测试 SSH 访问
要测试 SSH 是否正常工作并且您可以连接到它,请打开您的客户端计算机。 这台机器应该有一个 SSH 客户端。 如果您使用的是 CentOS 客户端,您可以按如下方式安装 SSH 客户端:
$ sudo dnf install openssh-clients
在这里,我们将使用我们的 Ubuntu 客户端机器对其进行测试。
要连接到 SSH 服务器,您将需要远程系统的 IP 地址和用户名:
$ ssh [email protected]_ip_address
例如,在我们的例子中,远程机器(安装了 SSH 服务器)的 IP 地址是“192.168.72.192”,用户名是“kbuzdar”,所以我们运行命令:
$ ssh [email protected]
笔记: 如果您不知道如何找到机器的 IP 地址,请访问此帖子。
连接到 SSH 服务器后,它会要求您输入密码。 Enter 密码,然后您将登录到您的远程系统。 现在您还会注意到终端提示已更改为反映远程系统用户名和系统名称。
配置 SSH
SSH 配置文件位于 /etc/ssh/sshd_config. 该文件包含不同的配置选项,您可以根据需要进行更改。 在这里,我们将查看一些可能需要修改的常见选项,例如更改默认 SSH 端口和监听地址、禁用 root 登录、配置最大会话数和密码尝试等。
要配置或更改任何选项,您需要编辑 sshd_config 文件:
$ sudo nano /etc/ssh/sshd_config
请记住,在更改任何设置后 sshd_config 文件,确保重新加载 SSH 服务器以实现更改:
$ sudo systemctl reload ssh
更改 SSH 端口
默认情况下,SSH 使用端口 22 来侦听传入连接。 如果出于任何原因想要更改 SSH 端口,可以通过编辑 sshd_config 文件并搜索显示以下内容的行:
# Port 22
通过删除哈希 (#) 和替换来取消注释该行 22 使用您要为 SSH 设置的端口号。
完成后,保存并 close sshd_config 文件。
更改收听地址
默认情况下,SSH 侦听所有本地接口。 要将 SSH 配置为仅侦听特定网络接口,请编辑 sshd_config 文件:
$ sudo nano /etc/ssh/sshd_config
搜索显示以下内容的行:
#ListenAddress 0.0.0.0
取消注释以上行并将 0.0.0.0 替换为您希望 SSH 侦听的本地地址。
完成后,保存并 close sshd_config 文件。
禁用根登录
默认情况下, 根 允许用户使用 SSH 登录。 这由 sshd_config 文件中的 PermitRootLogin 参数控制,默认为“yes”,表示允许 root 登录。
要禁用 root 登录,请编辑 sshd_config 文件:
$ sudo nano /etc/ssh/sshd_config
查找显示以下内容的行:
# PermitRootLogin no
取消注释(如果已注释)上述行并将“no”替换为“yes”以禁用使用 SSH 的 root 登录。
完成后,保存并 close sshd_config 文件。
更改允许的会话数和身份验证尝试次数
默认情况下,每个网络连接允许的最大会话数为 10。它可以由 最大会话数 中的参数 sshd_config 文件。 同样,一个登录会话的最大身份验证尝试次数为 6 次,可以使用 MaxAuthTries 范围。
要更改每个网络连接允许的会话数,请搜索以下行:
# MaxSessions 10
取消注释上述行并将其值替换为您想要的值。
要更改每个登录会话允许的身份验证尝试次数,请搜索以下行:
# MaxAuthTries 6
取消注释上述行并将其值替换为您想要的值。
完成后,保存并 close sshd_config 文件。
更改宽限时间
当您连接到 SSH 服务器时,它会给您 120 秒(默认时间)来使用用户名和密码完成身份验证。 如果您在此期间未登录,服务器将断开连接,您必须重新登录。 您可以将此时间设置为略高于完成登录所需的时间,或将其设置为较低,以防止多个会话长时间保持打开状态的 DoS 攻击。
要更改此时间,请搜索显示以下内容的行:
# LoginGraceTime 120
取消注释上述行并将其值替换为您想要的时间(以秒为单位)。 如果您不想设置任何时间限制,请将其值设置为 0。
完成后,保存并 close sshd_config 文件。
在这篇文章中,我们介绍了如何在 CentOS 机器上启用 SSH 并使用客户端机器连接到它。 我们还查看了 SSH 服务器的各种配置选项。 如果您想让您的远程访问安全,请访问我们关于保护 SSH 服务器的 11 种最佳方法的帖子。