讲师中心 微信公众号
AI工具推荐 视频效率加速

CentOS 7升级OpenSSH版本教程 修复系统安全漏洞方法

落伟大大_3228

落伟大大_3228

发布时间:2026-04-29 12:08:28

|

628人浏览过

|

来源于php中文网

原创

CentOS 7需升级OpenSSH以修复CVE-2020-15778、CVE-2021-41617等高危漏洞,方法包括:一、YUM在线升级;二、RPM离线升级;三、源码编译安装;四、先升OpenSSL再编译OpenSSH;五、必须预设紧急回退机制。

centos 7升级openssh版本教程 修复系统安全漏洞方法

如果您正在运行CentOS 7系统,发现OpenSSH版本长期停留在7.4p1或7.9p1等老旧版本,则极可能暴露于多个已公开的高危CVE漏洞中,例如CVE-2020-15778(scp命令绕过限制)、CVE-2021-41617(与OpenSSL交互引发的内存读取异常)等。以下是修复此类安全漏洞的多种可行方法:

一、使用YUM在线升级(适用于官方源已提供更新包的场景)

该方法依赖CentOS官方或EPEL仓库中是否存在适配当前系统的较新OpenSSH RPM包。其优势在于操作简洁、依赖自动处理、服务无缝重启,风险最低。

1、执行系统基础更新,确保yum元数据最新:
sudo yum clean all && sudo yum makecache

2、检查当前OpenSSH安装状态:
rpm -qa | grep openssh

3、执行OpenSSH组件定向升级:
sudo yum update -y openssh openssh-clients openssh-server openssh-askpass

4、验证升级结果:
ssh -V && /usr/sbin/sshd -V

5、重启SSH服务并确认端口监听正常:
sudo systemctl restart sshd && sudo ss -tlnp | grep :22

二、RPM包离线升级(推荐用于生产环境可控部署)

该方法通过预编译完成的RPM包进行安装,避免现场编译带来的环境差异与失败风险,同时可完整保留systemd服务单元和SELinux上下文,适合对稳定性要求高的场景。

1、在相同架构的构建机上下载或生成适配CentOS 7的OpenSSH RPM包(如OpenSSH_9.3p2-el7.x86_64.rpm),确保其依赖OpenSSL ≥1.1.1u且已签名验证

2、将RPM包上传至目标服务器的/tmp目录

3、强制升级并忽略依赖冲突(仅当确认底层OpenSSL已满足要求时使用):
sudo rpm -Uvh --force --nodeps /tmp/openssh-*.rpm

4、备份原始配置并校验sshd_config语法:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
sudo sshd -t

5、重载systemd配置并重启服务:
sudo systemctl daemon-reload && sudo systemctl restart sshd

三、源码编译安装(适用于需精确控制版本或修复特定补丁的深度运维场景)

该方式绕过系统包管理器,将OpenSSH安装至独立路径(如/usr/local/openssh),可彻底规避与系统默认版本的冲突,但需手动维护服务启动、PATH路径及日志集成。

1、安装编译依赖:
sudo yum groupinstall -y "Development Tools"
sudo yum install -y zlib-devel openssl-devel pam-devel systemd-devel

2、下载OpenSSH源码包(以9.3p2为例)及对应OpenSSL 1.1.1u源码:
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p2.tar.gz
wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz

CentOS Linux 7.9.2009
CentOS Linux 7.9.2009

CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离

下载

3、解压并依次编译安装OpenSSL(指定prefix为/usr/local/ssl)与OpenSSH(指定--with-ssl-dir=/usr/local/ssl)

4、创建systemd服务文件/usr/lib/systemd/system/sshd-custom.service,ExecStart指向/usr/local/openssh/sbin/sshd

5、启用新服务并禁用原sshd:
sudo systemctl disable sshd
sudo systemctl enable sshd-custom
sudo systemctl start sshd-custom

四、混合策略:先升级OpenSSL再编译OpenSSH(解决低版本库兼容性问题)

CentOS 7默认OpenSSL 1.0.2k不支持OpenSSH 9.x所需的部分API,直接编译会报错。此方案通过安全方式替换OpenSSL运行时库,为新版OpenSSH提供底层支撑,同时保留原有libssl.so.10软链接以维持系统命令可用性。

1、下载openssl-1.1.1u源码并编译安装至/usr/local/ssl,执行make install

2、创建兼容性软链接:
sudo ln -sf /usr/local/ssl/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.10
sudo ln -sf /usr/local/ssl/lib64/libssl.so.1.1 /usr/lib64/libssl.so.10

3、更新动态库缓存:
echo "/usr/local/ssl/lib64" | sudo tee /etc/ld.so.conf.d/openssl-1.1.1u.conf
sudo ldconfig -v

4、验证链接有效性:
ls -l /usr/lib64/libssl.so.10 /usr/lib64/libcrypto.so.10
sudo ldd /usr/local/openssh/sbin/sshd | grep ssl

5、继续执行第三种方法中的OpenSSH编译与部署步骤

五、紧急回退机制(所有升级操作前必须完成)

任何OpenSSH升级均存在导致SSH连接中断的风险。必须提前建立至少一种备用访问通道,并固化回退路径,否则可能造成服务器失联。

1、在执行升级前,通过云平台VNC控制台或物理终端确认可登录

2、备份全部SSH相关文件:
sudo cp -r /etc/ssh /etc/ssh.pre-upgrade
sudo cp /usr/sbin/sshd /usr/sbin/sshd.pre-upgrade
sudo cp /usr/bin/ssh /usr/bin/ssh.pre-upgrade

3、记录当前systemd服务状态:
sudo systemctl status sshd --no-pager > /root/sshd-status-pre-upgrade.log

4、设置超时自动回滚脚本(示例):
echo 'sleep 300; systemctl start sshd' | at now + 5 minutes

5、若升级后无法SSH登录,立即通过VNC执行:
sudo mv /usr/sbin/sshd.pre-upgrade /usr/sbin/sshd
sudo systemctl start sshd

热门AI工具

更多
讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
centos
centos

PHP中文网为大家提供centos相关信息,CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,是免费的、开源的、可以重新分发的开源操作系统,PHP中文网提供centos相关文章,以及安装教程。

3389

2023.06.16

常见的linux系统有哪些
常见的linux系统有哪些

linux系统有Ubuntu、Fedora、CentOS、Debian、openSUSE、Arch Linux、Gentoo、Slackware、Linux Mint、Kali Linux。更多关于linux系统的文章详情请阅读本专题下面的文章。php中文网欢迎大家前来学习。

6461

2023.10.27

CentOS安装部署教程精选
CentOS安装部署教程精选

CentOS安装部署专题提供 CentOS Stream 9/10 服务器安装与初始化配置教程,涵盖 ISO 镜像下载、系统分区、最小化安装、网络配置、SSH远程连接、防火墙、软件源、时区同步、用户权限和常见安装故障排查,适合新手搭建 Linux 服务器环境及运维人员快速部署 CentOS 系统。

174

2026.05.29

CentOS运维命令大全
CentOS运维命令大全

CentOS运维命令专题整理 CentOS 服务器日常管理常用命令,覆盖系统信息查看、用户与权限管理、服务启动停止、进程监控、端口查看、日志分析、磁盘空间清理、软件包安装、定时任务配置和故障排查方法,帮助运维人员高效完成 CentOS 系统维护工作。

188

2026.05.29

CentOS建站环境搭建实战教程
CentOS建站环境搭建实战教程

CentOS建站环境专题围绕服务器网站部署场景,系统讲解在 CentOS 上安装和配置 Nginx、Apache、PHP、MySQL、MariaDB、PHP-FPM、SSL证书、网站目录权限、虚拟主机、反向代理和 WordPress 等常见建站环境,适合个人站长和运维人员搭建稳定 Web 服务。

223

2026.05.29

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

0

2026.10.16

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

0

2026.10.16

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CentOS 官方文档
CentOS 官方文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn