1. 项目概述
作为一名长期维护Linux服务器的运维工程师,最近OpenSSH爆出的CVE-2024-6387漏洞让我不得不立即着手升级系统上的OpenSSH版本。这个漏洞影响范围广,危害严重,可能导致远程代码执行。本文将详细记录我在CentOS 7.9系统上将OpenSSH从7.4p1升级到9.8p1的完整过程,包括所有关键步骤、遇到的问题及解决方案。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 升级前的准备工作
2.1 系统环境确认
在开始升级前,首先需要确认当前系统的详细环境信息:
bash复制# 查看内核版本
uname -a
# 输出示例:Linux CentOS7 3.10.0-1160.el7.x86_64
# 查看CentOS发行版信息
cat /etc/centos-release
# 输出示例:CentOS Linux release 7.9.2009 (Core)
# 查看当前OpenSSH版本
ssh -V
# 输出示例:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017
这些信息对于后续的依赖包选择和问题排查至关重要。特别是OpenSSL的版本,因为新版的OpenSSH 9.8需要OpenSSL 3.x的支持。
2.2 关键配置文件备份
在进行任何系统级升级前,备份是必不可少的步骤。以下是必须备份的关键文件和目录:
bash复制# 备份SSH相关配置
cp -rf /etc/ssh /etc/ssh.bak
# 备份OpenSSL二进制文件
cp -rf /usr/bin/openssl /usr/bin/openssl.bak
# 备份PAM配置
cp -rf /etc/pam.d /etc/pam.d.bak
# 备份systemd服务文件
cp -rf /usr/lib/systemd/system /usr/lib/systemd/system.bak
重要提示:备份时建议使用绝对路径,并确保备份目录与原目录不在同一分区,避免意外覆盖或删除。
2.3 安装编译依赖工具
编译新版本的OpenSSH需要一系列开发工具和库文件。由于CentOS 7的默认yum源可能版本较旧,建议先切换到阿里云的镜像源:
bash复制# 备份原有yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载阿里云yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 清理并重建yum缓存
yum clean all
yum makecache
安装编译所需的依赖包:
bash复制yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel \
pcre-devel pa
