Openeuler2203编译安装openssh9.8p1,RPM打包,解决漏洞问题

Openeuler2203编译安装openssh9.8p1,RPM打包,解决漏洞问题

1,使用rpmbuild将tar包打成rpm包,不喜欢编译升级的,使用RPM升级就方便多了。

想使用openssh的源码包编译安装的,参考这里:

OpenSSH-9.8p1 OpenSSH-9.9p2

2,准备编译环境

[root@centos7-31 ~]#  yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel  libXt-devel gtk2-devel make perl -y

[root@centos7-31 ~]#  dnf install imake -y 

[root@centos7-31 ~]#  mkdir -p /root/rpmbuild/

[root@centos7-31 ~]#   cd /root/rpmbuild

[root@centos7-31 ~]#    mkdir BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

3,下载软件包

[root@centos7-31 ~]#  cd SOURCES/

[root@centos7-31 ~]#  wget  https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz

[root@centos7-31 ~]#   wget https://mirrors.slackware.com/slackware/slackware-14.2/source/xap/x11-ssh-askpass/x11-ssh-askpass-1.2.4.1.tar.gz

4,解压软件包,修改相关配置文件,再重新打包

[root@centos7-31 ~]#  tar zxvf openssh-9.8p1.tar.gz

[root@centos7-31 ~]#   cd openssh-9.8p1/

[root@centos7-31 ~]#   cp /etc/pam.d/sshd contrib/redhat/sshd.pam



注意这里还需要修改/root/rpmbuild/SOURCES/openssh-9.8p1/sshd_config文件内容,这样升级后就不修改系统的sshd_config的配置内容。

根据自己情况修改。

[root@centos7-31 ~]#   cd /root/rpmbuild/SOURCES/

[root@centos7-31 ~]#    tar -zcpf openssh-9.8p1.tar.gz openssh-9.8p1

5,修改打包配置文件。

#将openssh.spec配置文件拷贝到,编译目录下

 cp  /root/rpmbuild/SOURCES/openssh-9.8p1/contrib/redhat/openssh.spec  /root/rpmbuild/SPECS/ 

 cd /root/rpmbuild/SPECS

解决PreReq报错

cat /root/rpmbuild/SPECS/openssh.spec | grep PreReq

sed -i ‘/PreReq/s/^/#/’ openssh.spec

以下是源码包修改了相关配置文件,包含打包配置文件,可以直接用来打包,使用此文件可解决没有ssh-copy-id命令的问题

openssh9.8p1源码与RPM包 https://www.micoder.cc/attachment.php?fid=8720

6,打包软件

[root@centos7-31 ~]#   rpmbuild -ba openssh.spec 

7,删除旧版软件,并安装openssh9.8p1

[root@centos7-31 ~]#   cd /root/rpmbuild/RPMS/x86_64/

[root@centos7-31 ~]# rpm -Uvh openssh-*.rpm

或是使用以下命令删除旧软件包,再安装。

[root@centos7-31 ~]#     rpm -e $(rpm -qa |grep openssh) --nodeps

[root@centos7-31 ~]#   rpm -ivh openssh-*.rpm

8,检查配置文件内容是否有误,启用sshd服务

[root@centos7-31 ~]#    sshd -t

[root@centos7-31 ~]#     systemctl disable sshd

[root@centos7-31 ~]#     systemctl enable sshd

[root@centos7-31 ~]#    systemctl restart sshd

以下是openssh9.8p1的rpm包下载地址

openssh9.8p1源码与RPM包 https://www.micoder.cc/attachment.php?fid=8720