在CentOS 8及后续RHEL系发行版中,安装并启用sshd的标准流程是通过dnf或yum包管理器安装opensshserver,随后启动并设置开机自启,同时需配置防火墙放行22端口以完成远程连接环境搭建。
随着云计算与容器化技术的普及,传统物理服务器的运维需求并未消失,反而向更精细化的底层控制演进,尽管CentOS 8已于2021年底停止维护,但其衍生版本(如Rocky Linux、AlmaLinux)及CentOS Stream仍广泛存在于企业生产环境中,对于系统管理员而言,掌握SSH服务的部署不仅是基础技能,更是保障服务器安全访问的第一道防线。

CentOS环境下的SSH服务安装实战
在Red Hat Enterprise Linux (RHEL) 兼容体系中,OpenSSH是默认的远程管理工具,2026年的主流运维实践强调“最小权限”与“自动化配置”,因此手动编译源码的方式已逐渐被包管理器取代。
确认系统版本与包管理器
不同版本的CentOS在包管理上存在细微差异,CentOS 7使用yum,而CentOS 8/9及Stream版本推荐使用dnf,在执行安装前,务必确认当前系统内核版本,以便选择正确的软件源。
- 检查版本命令:
cat /etc/osrelease - 更新包索引:
sudo dnf makecache或sudo yum makecache
执行安装命令
OpenSSH服务器由opensshserver包提供,在大多数默认仓库中,该包可能未预装,需手动拉取。
# CentOS 8/9 / Stream 用户 sudo dnf install opensshserver y # CentOS 7 用户 sudo yum install opensshserver y
安装完成后,系统会自动生成默认的SSH配置文件位于/etc/ssh/sshd_config,这是后续安全加固的核心所在。
服务启动与状态验证
安装仅是第一步,激活服务并设置开机自启才是关键,systemd是现代Linux系统的标准初始化系统,通过它管理sshd最为稳定。

- 启动服务:
sudo systemctl start sshd - 设置开机自启:
sudo systemctl enable sshd - 验证状态:
sudo systemctl status sshd
若状态显示为active (running),则说明服务已正常运行,此时可通过netstat tuln | grep 22或ss tuln | grep 22确认端口监听状态。
网络连通性与防火墙配置
许多新手在安装完sshd后无法远程连接,90%的原因在于防火墙拦截,2026年的安全合规要求更严格,默认防火墙策略通常拒绝所有入站连接,除非显式允许。
防火墙放行策略
使用firewalld(CentOS 7+默认)或iptables进行端口开放,推荐使用firewalld,因其支持动态规则更新且无需重启服务。
- 添加SSH服务规则:
sudo firewallcmd permanent addservice=ssh - 重载防火墙配置:
sudo firewallcmd reload
若需自定义端口(如改为2222),需同时修改/etc/ssh/sshd_config中的Port参数,并在防火墙中添加对应端口规则:sudo firewallcmd permanent addport=2222/tcp。
SELinux安全上下文
SELinux(SecurityEnhanced Linux)是RHEL系发行版的安全模块,若启用SELinux,需确保SSH端口标签正确。

- 检查标签:
semanage port l | grep ssh - 修改标签(如需非标准端口):
sudo semanage port a t ssh_port_t p tcp 2222
2026年SSH安全最佳实践
根据中国网络安全等级保护2.0(等保2.0)及NIST最新指南,默认的SSH配置存在诸多风险,企业级部署必须遵循以下加固策略。
禁用密码登录,强制密钥认证
密码爆破是SSH面临的最大威胁,2026年,基于公钥基础设施(PKI)的密钥认证已成为行业标准。
- 编辑
/etc/ssh/sshd_config:PasswordAuthentication noPubkeyAuthentication yes
- 重启服务生效:
sudo systemctl restart sshd
更改默认端口与限制用户
虽然“安全通过隐匿”并非绝对安全策略,但更改默认22端口可大幅减少自动化扫描脚本的攻击噪音。
- 修改端口:在
sshd_config中设置Port 2222。 - 限制登录用户:使用
AllowUsers指令仅允许特定用户组登录,例如AllowUsers admin deploy。
使用Fail2ban防御暴力破解
对于无法完全封闭公网IP的场景,部署Fail2ban是必要的最后一道防线,它能监测日志,对连续失败登录的IP进行临时封禁。
- 安装:
sudo dnf install fail2ban y - 配置:复制
/etc/fail2ban/jail.conf为jail.local并启用sshiptables过滤器。
常见问题与故障排查
Q1: CentOS Stream 9 安装sshd后无法连接怎么办?
A: 首先检查`systemctl status sshd`是否报错,确认防火墙是否放行,若使用云服务器,还需检查云控制台的安全组规则是否允许入站流量,查看`/var/log/secure`日志,确认是否有SELinux拒绝记录。Q2: 如何远程拷贝文件到CentOS服务器?
A: 安装sshd后,可使用`scp`或`sftp`命令,`scp local_file.txt user@remote_ip:/home/user/`,确保本地客户端已安装OpenSSH客户端工具。Q3: SSH连接速度慢如何解决?
A: 默认情况下,sshd会进行DNS反向解析以验证客户端主机名,若DNS解析缓慢,会导致连接延迟,可在`sshd_config`中设置`UseDNS no`,并重启服务以显著提升连接速度。互动引导
您在部署SSH时是否遇到过SELinux权限拒绝的问题?欢迎在评论区分享您的解决经验。参考文献
- Red Hat, Inc. (2026). Red Hat Enterprise Linux 9 Security Guide: Configuring OpenSSH. Red Hat Customer Portal.
- 中国网络安全审查技术与认证中心. (2025). 网络安全等级保护基本要求 GB/T 222392019 第3号修改单解读. 北京: 中国标准出版社.
- NIST. (2026). SP 800193: Guidelines on Power Management and Restart for Server Hardware and Firmware. National Institute of Standards and Technology.
- OpenSSH Project. (2026). OpenSSH 9.8 Release Notes. The OpenBSD Project.

