centos7.9版本升级ssh OpenSSH 9.8p1 源码 OpenSSL 1.1.1w 源码包以及安装升级回滚文档

此包专为 **Anolis OS 7.9 x86_64** 构建,也兼容 CentOS 7 / EulerOS 2.0 SP2 等基于 RHEL 7 的系统

编译依赖 RPM 来自 CentOS 7 vault 镜像,与 Anolis OS 7.9 二进制兼容

OpenSSL 安装到独立路径,不影响系统原有 OpenSSL

如目标系统已有部分编译工具,脚本会跳过已安装的包

OpenSSH 9.8p1 离线安装包 (Anolis OS 7.9)

包内容

  • `sources/openssh-9.8p1.tar.gz` - OpenSSH 9.8p1 源码

  • `sources/openssl-1.1.1w.tar.gz` - OpenSSL 1.1.1w 源码

  • `build-deps/*.rpm` - 编译依赖 RPM 包 (199 个,来自 CentOS 7 vault,与 Anolis OS 7.9 兼容)

  • `install-offline.sh` - 离线安装脚本

安装方式

```bash

1. 将打包文件传到目标 Anolis OS 7.9 系统

scp openssh-9.8p1-offline-bundle.tar.gz root@<target>:/root/

2. 在目标系统上解压并执行

ssh root@<target>

cd /root

tar -xzf openssh-9.8p1-offline-bundle.tar.gz

cd openssh-9.8p1-offline-bundle

bash install-offline.sh

```

脚本执行流程

  1. **安装编译依赖** - 从 `build-deps/` 本地安装 gcc/make/autoconf/zlib-devel/pam-devel/krb5-devel/libedit-devel/perl 等

  2. **编译 OpenSSL 1.1.1w** - 安装到 `/usr/local/openssl-1.1`(不覆盖系统 openssl)

  3. **编译 OpenSSH 9.8p1** - 链接到新 OpenSSL,使用 rpath 确保运行时找到正确的库

  4. **备份当前 ssh** - 备份 `/etc/ssh`、sshd 二进制、PAM 配置、systemd service 到 `backup/`

  5. **安装并重启 sshd** - 测试配置后重启服务

安全说明

  • **不会断连**:脚本在前台运行,但 sshd 重启时 SSH 会话可能短暂中断,几秒后可重连

  • **自动备份**:所有原文件备份到 `backup/` 目录,带时间戳

  • **回滚方法**(见脚本输出):

```bash

cp backup/sshd.bin.* /usr/sbin/sshd

cp backup/ssh.bin.* /usr/bin/ssh

cp -a backup/etc-ssh-*/* /etc/ssh/

systemctl restart sshd

```

安装后的关键路径

  • OpenSSH 9.8p1: `/usr/bin/ssh`, `/usr/sbin/sshd`, `/usr/libexec/openssh/`

  • OpenSSL 1.1.1w: `/usr/local/openssl-1.1/` (库文件在 `lib/`)

  • 配置文件: `/etc/ssh/`, `/etc/pam.d/sshd`, `/etc/sysconfig/sshd`

  • systemd 服务: `/usr/lib/systemd/system/sshd.service` (Type=simple)

验证安装

```bash

ssh -V # 应显示 OpenSSH_9.8p1, OpenSSL 1.1.1w

systemctl status sshd # 应为 active (running)

/usr/local/openssl-1.1/bin/openssl version # OpenSSL 1.1.1w

ldd /usr/sbin/sshd | grep libcrypto # 应指向 /usr/local/openssl-1.1/lib/

```

相关推荐
不会就选b7 小时前
Linux之TCP理论<1>
linux·运维·服务器
倔强的石头1068 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言
Android系统攻城狮10 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_samples_min调用流程与实战(六十)
linux·运维·服务器·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
_upupup10 小时前
Linux中的自动化构建——make/Makefile
linux·运维·自动化
还卿一钵无情泪11 小时前
Docker 部署Unsloth 绕开环境配置难题
运维·人工智能·docker·ai·容器·nlp·干货
打工仔折腾 AI12 小时前
Docker镜像分层与卷挂载到底怎么工作:一次文件系统层面的实测分析
运维·人工智能·后端·python·docker·容器·性能优化
大猫会长13 小时前
调用codebuddy集成的supabase授权白屏解决方法
linux·运维·服务器
夜之眷属13 小时前
服务器被挖矿病毒入侵的排查与清理实录
运维·服务器
极客先躯13 小时前
高级java每日一道面试题-2026年01月20日-实战篇[Docker]-如何实现镜像的跨区域复制?
java·运维·docker·容器·架构图
韩振方14 小时前
为什么服务显示占了 8G,实际内存却没那么多?
运维