场景
手头有很多业务跑在 CentOS 7.x 环境,系统太老且OpenSSH 使用官方rpm包最高只能升级到7.4。要修复OpenSSH 最近的高危漏洞,只能使用OpenSSH 源码包手工编译。需要注意的点:
- OpenSSH 提供多种操作系统分发版的打包,CentOS 7.x 可以打出rpm包,不建议使用 make install 方式安装
- OpenSSH 需要 openssl >= 1.1.1,CentOS 官方没有这个版本,因此OpenSSH 在 CentOS 7 默认使用 --without-openssl 编译。这完全不影响ssh和sshd日常使用,后续再补全openssl-1.1.1编译步骤
准备环境
1. 编译环境
在 CentOS 7 中安装各种库、头文件、编译器和打包工具,yum 源可以配置aliyun的centos-vault
yum groupinstall -y "Development Tools"
yum install -y zlib-devel pam-devel krb5-devel
yum install -y rpmdevtools imake libXt-devel gtk2-devel
# 创建 编译和打包 的目录结构
rpmdev-setuptree
# 完成后创建以下目录
# /root/rpmbuild/SOURCES
# /root/rpmbuild/SPECS
# /root/rpmbuild/BUILD
# /root/rpmbuild/RPMS
# /root/rpmbuild/SRPMS