Centos7制作openssh9.2 rpm 包
YSW 20230202
CentOS Linux release 7.9.2009 (Core)
OpenSSH_9.2, OpenSSL 1.1.1s 1 Nov 2022
openssh -V 和 openssl version 的openssl版本显示一致
一 、升级虚拟机的openssl版本
为编译制作新版本openssh rpm包作准备
[root@localhost ~]# openssl version #查看当前 openssl 版本,目前是 1.0 版本系列
OpenSSL 1.0.2k-fips 26 Jan 2017
[root@localhost ~]# yum install perl gcc -y #如果有可不用安装
1、下载最新的openssl 1系列版本
2、 编译升级openssl
[root@localhost ~]# tar -zxvf openssl-1.1.1s.tar.gz
[root@localhost ~]# cd openssl-1.1.1s
[root@localhost openssl-1.1.1s]# ./config
[root@localhost openssl-1.1.1s]# make && make install
[root@localhost openssl-1.1.1s]# ln -s /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
[root@localhost openssl-1.1.1s]# ln -s /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
3、 验证openssl版本
退出当前 CRT 会话,重新登录连接会话,再次查看版本信息
[root@localhost ~]# openssl version #可以看到版本已经更新
OpenSSL 1.1.1s 1 Nov 2022
[root@localhost ~]#
二、制作openssh9.0.rpm包
1、yum安装编译依赖的组件
yum install -y epel*
yum install -y rpm-build gcc gcc-c++ glibc glibc-devel openssl-devel openssl prce pcre-devel zlib zlib-devel make wget krb5-devel pam-devel libX11-devel xmkmf libXt-devel initscripts libXt-devel imake gtk2-devel lrzsz krb5-devel perl
2、建立编译目录
mkdir -pv /root/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}
3、下载源码包
cd /root/rpmbuild/SOURCES
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.2p1.tar.gz --no-check-certificate
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz --no-check-certificate
4、解压
cd /root/rpmbuild/SOURCES/
tar -xf openssh-9.2p1.tar.gz openssh-9.2p1/contrib/redhat/openssh.spec
mv openssh-9.2p1 /root/rpmbuild/SPECS
5、配置编译文件
cd /root/rpmbuild/SPECS/openssh-9.2p1/contrib/redhat/
sed -i -e "s/%global no_gnome_askpass 0/%global no_gnome_askpass 1/g" openssh.spec
sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
sed -i -e "s/^BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g" openssh.spec
sed -i -e '/with-privsep-path/a\ --with-openssl-includes=/usr/local/openssl/include \\\n --with-ssl-dir=/usr/local/openssl \\' openssh.spec
6、编译openssh源码
rpmbuild -bb /root/rpmbuild/SPECS/openssh-9.2p1/contrib/redhat/openssh.spec
7、查看生成的 openssh rpm包
[root@192 x86_64]# cd /root/rpmbuild/RPMS/x86_64/
[root@192 x86_64]# ll
总用量 4872
-rw-r--r-- 1 root root 689872 10月 6 21:43 openssh-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 658088 10月 6 21:43 openssh-clients-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 3164124 10月 6 21:43 openssh-debuginfo-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 467668 10月 6 21:43 openssh-server-9.2p1-1.el7.x86_64.rpm
[root@192 x86_64]# rm -f openssh-debuginfo-9.2p1-1.el7.x86_64.rpm #删除debuginfo包
[root@192 x86_64]# ll
总用量 1780
-rw-r--r-- 1 root root 689872 10月 6 21:43 openssh-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 658088 10月 6 21:43 openssh-clients-9.2p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 467668 10月 6 21:43 openssh-server-9.2p1-1.el7.x86_64.rpm
[root@192 x86_64]#