SSH(Secure Shell)是一种加密通信协议,用于在远程服务器和客户端之间传输数据,其目的是为了保证通信的安全和可靠性。在本文中,我们将学习如何在 CentOS 7 系统中配置 SSH 服务。

如果您的CentOS 7 系统尚未安装 SSH 服务,那么您需要在命令行中输入以下命令来进行安装:

yum install openssh-server

按照默认设置,SSH 服务应该已经启动。但是,我们还需要进行一些配置才能保证 SSH 服务的安全性和可靠性。

默认情况下,SSH 服务使用22端口进行通信。但是,由于这个端口是众所周知的,因此可能会使您的系统面临安全风险。因此,一种好的做法是将 SSH 端口更改为其他端口,例如2222端口。

为了进行端口更改,我们需要修改SSH配置文件。打开配置文件,找到Port 22这一行,将这一行的22替换为2222:

vi /etc/ssh/sshd_config

Port 2222

虽然可以使用root登录远程服务器,但这也会增加系统的安全性风险。因此,为了使系统更加安全,我们建议禁用root登录。

打开SSH配置文件,找到PermitRootLogin这一行,并将其设置为no:

vi /etc/ssh/sshd_config

PermitRootLogin no

某些攻击者可以通过爆破来猜测远程服务器的密码。为了避免这种情况的发生,我们建议禁用密码登录,并只允许使用公钥登录。

打开SSH配置文件,找到PasswordAuthentication 这一行,并将其设置为no:

vi /etc/ssh/sshd_config

PasswordAuthentication no

在进行了以上的修改之后,需要重启SSH 服务才能使其生效:

systemctl restart sshd.service

现在,只有通过公钥进行登录才是可行的。因此,让我们来生成一对SSH 密钥。

输入以下命令生成密钥(请注意,下面的示例中的user是您的用户名。):

ssh-keygen -t rsa

按照提示进行操作,生成的密钥在/home/user/.ssh目录下。

为了使用密钥进行登录,您需要将公钥添加到远程服务器的~/.ssh/authorized_keys文件中。请按以下步骤操作:

在本地计算机上打开公钥文件:

cat /home/user/.ssh/id_rsa.pub

复制并粘贴公钥到服务器:

ssh user@your_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub

现在您应该能够使用SSH 密钥登录到远程服务器了:

ssh user@your_server -p 2222

由于我们已经将SSH 端口更改为2222,您需要更新防火墙规则以允许该端口的入站流量。

您可以使用以下命令打开2222端口:

firewall-cmd --permanent --zone=public --add-port=2222/tcp

firewall-cmd --reload

为了有效保护SSH 服务免受暴力破解等攻击,我们建议您安装Fail2ban服务。Fail2ban是一种安全性补充,它会监视 SSH 服务的日志,并自动封锁多次失败的登录尝试。

请按以下命令来进行安装:

yum install fail2ban

之后,您需要在/etc/fail2ban/jail.local文件中添加一些设置:

[DEFAULT]

ignoreip = 127.0.0.1

bantime  = 3600

maxretry = 3

[sshd]

enabled  = true

port     = 2222

logpath  = /var/log/secure

现在您需要重新启动Fail2ban 服务让其生效:

systemctl restart fail2ban

您已经成功地在CentOS 7 系统上配置了 SSH 服务,并使其更加安全和可靠。在后续的使用过程中,请务必不要使用root用户登录,而是使用公钥进行登录。除此之外,您还可以安装Fail2ban服务来增强系统的安全性。

最后修改:2023 年 06 月 22 日
喜欢就用赞赏来鞭打我吧~