CentOS SSHD
一、简介

CentOS(Community Enterprise Operating System)是一个基于Red Hat Enterprise Linux (RHEL) 的开源操作系统,以其稳定性和安全性而著称,Secure Shell (SSH) 是一种加密的网络协议,用于在不安全的网络上安全地操作远程计算机,OpenSSH 是 SSH 协议的一个实现,包含客户端和服务端软件,本文将详细介绍如何在 CentOS 系统上管理 SSHD(OpenSSH 守护进程)。
二、安装与检查
检查是否已安装 SSH
要检查系统中是否已经安装了 SSH,可以使用以下命令:
rpm qa | grep opensshserver
如果返回结果中包含opensshserver,则表示已经安装,否则,需要使用以下命令进行安装:
yum install y opensshserver
启动、停止和重启 SSHD 服务
启动 SSHD 服务:
systemctl start sshd停止 SSHD 服务:

systemctl stop sshd重启 SSHD 服务:
systemctl restart sshd查看 SSHD 服务状态
systemctl status sshd
通过此命令可以查看 SSHD 服务的运行状态、是否正在运行以及最近的日志信息。
设置开机自启
为了确保系统重启后 SSHD 服务自动启动,可以使用以下命令:
systemctl enable sshd
三、配置文件详解
SSH 服务器的配置文件位于/etc/ssh/sshd_config,以下是一些关键配置项及其解释:
Port
Port 22
指定 SSH 服务监听的端口号,默认为 22,如果更改此端口号,需同时更新防火墙规则。

ListenAddress
ListenAddress 0.0.0.0
指定 SSH 服务监听的地址。0.0.0.0 表示监听所有网络接口。
PermitRootLogin
PermitRootLogin no
禁止 root 用户通过 SSH 登录,为了增强安全性,建议设置为no。
4.PasswordAuthentication
PasswordAuthentication yes
允许使用密码认证,可以设置为no 以提高安全性,但需要配置公钥认证。
5.PubkeyAuthentication
PubkeyAuthentication yes
允许公钥认证,建议启用以提高安全性。
AuthorizedKeysFile
AuthorizedKeysFile .ssh/authorized_keys
指定存储公钥的文件路径,默认为.ssh/authorized_keys。
四、防火墙设置
查看防火墙状态
systemctl status firewalld
如果防火墙未运行,可以通过以下命令启动:
systemctl start firewalld
开放 SSH 端口
为了允许 SSH 流量通过防火墙,需要开放端口 22:
firewallcmd permanent addservice=ssh firewallcmd reload
以上命令将永久开放 SSH 服务所需的端口,并重新加载防火墙配置。
五、故障排除
检查日志文件
如果遇到问题,可以查看系统日志文件以获取更多详细信息:
tail f /var/log/secure
该命令实时显示系统安全相关的日志信息,包括 SSH 登录尝试和错误信息。
重启服务
修改配置文件后,记得重启 SSHD 服务以使更改生效:
systemctl restart sshd
六、常见问题解答(FAQs)
Q1: 如何更改 SSH 默认端口?
A1: 编辑/etc/ssh/sshd_config 文件,找到Port 配置项,将其更改为所需的端口号,将Port 22 改为Port 2222,然后保存文件并重启 SSHD 服务:
systemctl restart sshd
别忘了在防火墙中开放新的端口号:
firewallcmd permanent addport=2222/tcp firewallcmd reload
Q2: 如何禁用 root 用户通过 SSH 登录?
A2: 编辑/etc/ssh/sshd_config 文件,找到PermitRootLogin 配置项,将其设置为no:
PermitRootLogin no
然后保存文件并重启 SSHD 服务:
systemctl restart sshd
