HCRM博客

如何在CentOS系统中配置SSH服务?

CentOS SSH 配置指南

一、SSH简介

SSH(Secure Shell)是一种加密的络传输协议,主要用于远程登录和管理计算机系统,它通过加密技术保障数据传输的安全性,防止中间人攻击和窃听,CentOS默认安装并启用了OpenSSH服务器,但用户可以根据需要对其进行详细配置。

如何在CentOS系统中配置SSH服务?-图1
(图片来源网络,侵权删除)

二、开启SSH服务

1. 安装SSH服务

如果尚未安装SSH服务,可以使用以下命令进行安装:

sudo yum install y opensshserver

2. 启动SSH服务

使用以下命令启动SSH服务:

sudo systemctl start sshd

3. 设置SSH服务开机自启

为了确保每次系统重启后SSH服务自动启动,可以执行以下命令:

如何在CentOS系统中配置SSH服务?-图2
(图片来源网络,侵权删除)
sudo systemctl enable sshd

4. 检查SSH服务状态

可以使用以下命令查看SSH服务的状态:

sudo systemctl status sshd

通过该命令,可以看到Active状态是否为active (running),以及最近的几条链接信息。

三、查询与更改SSH端口

1. 查询当前SSH端口

默认情况下,SSH服务运行在22号端口,可以通过以下命令查询当前的SSH端口:

sudo netstat anp | grep ssh

或者查看配置文件:

如何在CentOS系统中配置SSH服务?-图3
(图片来源网络,侵权删除)
sudo cat /etc/ssh/sshd_config | grep Port

2. 更改SSH端口

为了增加安全性,建议更改默认的SSH端口,使用文本编辑器(如vi)打开配置文件:

sudo vi /etc/ssh/sshd_config

找到并修改Port行,去掉注释并将22改为新的端口号(例如55555):

Port 55555

保存并关闭文件后,重启SSH服务使更改生效:

sudo systemctl restart sshd

3. 确保新端口通过防火墙

如果服务器启用了防火墙,请确保新的SSH端口已开放:

sudo firewallcmd permanent zone=public addport=55555/tcp
sudo firewallcmd reload

四、其他高级配置

1. 禁用Root远程登录

出于安全考虑,可以禁止root用户通过SSH远程登录,编辑/etc/ssh/sshd_config文件,将PermitRootLogin设置为no:

PermitRootLogin no

2. 允许特定用户登录

可以通过AllowUsers指令限制只有特定用户可以登录:

AllowUsers user1 user2

3. 禁用密码认证,使用密钥认证

为了提高安全性,建议使用密钥认证而不是密码认证,首先生成密钥对:

sshkeygen t rsa

然后将公钥追加到目标服务器的~/.ssh/authorized_keys文件中:

cat ~/.ssh/id_rsa.pub | ssh user@remote_host 'cat >> ~/.ssh/authorized_keys'

修改配置文件禁用密码认证:

PasswordAuthentication no

4. 限制登录IP范围

可以通过Match指令限制某些用户只能从特定IP地址或IP段登录,只允许user1从192.168.1.0/24网段登录:

Match Address 192.168.1.0/24
    AllowUsers user1

5. 监控与日志记录

为了监控系统中的异常活动,可以启用详细的日志记录,编辑/etc/ssh/sshd_config文件,设置SyslogFacility为AUTH:

SyslogFacility AUTH

然后重启SSH服务。

五、常见问题及解决方法

Q1: 如何更改SSH端口数?

A1: 要更改SSH端口数,可以按照以下步骤操作:

1、使用文本编辑器打开配置文件/etc/ssh/sshd_config

2、找到Port 这一行,去掉前面的注释符号#,并将其值改为你想要的新端口号(例如55555)。

3、保存并关闭文件。

4、重启SSH服务以使更改生效:sudo systemctl restart sshd

5、如果服务器启用了防火墙,还需要确保新端口已经在防火墙中开放:sudo firewallcmd permanent zone=public addport=55555/tcp,然后重新加载防火墙:sudo firewallcmd reload

Q2: 如何更改SSH登录的超时时间?

A2: 要更改SSH登录的超时时间,可以按照以下步骤操作:

1、使用文本编辑器打开配置文件/etc/ssh/sshd_config

2、找到ClientAliveIntervalClientAliveCountMax 这两行,如果它们前面有注释符号#,则去掉注释符号。

3、设置ClientAliveInterval 为你希望的超时时间(单位为秒),例如ClientAliveInterval 300 表示每300秒发送一次心跳包。

4、设置ClientAliveCountMax 为最大失败次数,例如ClientAliveCountMax 0 表示只要超时就断开连接。

5、保存并关闭文件。

6、重启SSH服务以使更改生效:sudo systemctl restart sshd

分享:
扫描分享到社交APP
上一篇
下一篇