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/
```