openssh8.2制作rpm包

简介: 虚机openssh升级打补丁

openssh8.2制作rpm包
1、由于安全扫描出ssh的漏洞,需要升级ssh 一台一台编译安装比较慢。所以把源码包做成rpm包方便安装使用
2、下载源码包
wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.2p1.tar.gz

1.png

3、制作6系统使用的包,在六系统上制作,制作7系统使用的包。在7系统上面制作,下载相关依赖包
yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip -y
4.创建所需目录
mkdir -p /root/rpmbuild/{SOURCES,SPECS}
把所需的包拷贝到该目录下面
cp openssh-8.2p1.tar.gz x11-ssh-askpass-1.2.4.1.tar.gz /root/rpmbuild/SOURCES
2.png

tar xf openssh-8.2p1.tar.gz
cp /root/rpmbuild/SOURCES/openssh-8.2p1/contrib/redhat/openssh.spec /root/rpmbuild/SPECS
3.png

5.修改配置文件
sed -i -e "s/%define no_x11_askpass 0/%define no_x11_askpass 1/g" openssh.spec
sed -i -e "s/%define no_gnome_askpass 0/%define no_gnome_askpass 1/g" openssh.spec

构建包
rpmbuild -ba openssh.spec
编译过程遇到的错误:
错误:构建依赖失败: openssl-devel < 1.1 被 openssh-8.0p1-1.el7.x86_64 需要
解决:[root@localhost SPECS]# vim openssh.spec 注释掉 BuildRequires: openssl-devel < 1.1 这一行

构建包可能遇到如下问题:
检查未打包文件:/usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/openssh-8.2p1-1.el7.centos.x86_64错误:发现已安装(但未打包的)文件:   /usr/libexec/openssh/ssh-sk-helper   /usr/share/man/man8/ssh-sk-helper.8.gzRPM 构建错误:    发现已安装(但未打包的)文件:   /usr/libexec/openssh/ssh-sk-helper   /usr/share/man/man8/ssh-sk-helper.8.gz
问题说明:
大意是在SPEC最后make install时少COPY一些文件,我们可以手动在SPEC中把文件路径加上。
解决方案:
在spec文件中,找到%files(之下有很多%{_bindir}、%{_libdir}、%{_datadir}的),在其下依葫芦画瓢的添加上面提示的内容。
/usr/bin/xxx => %{_bindir}/xxx
/usr/lib/xxx => %{_libdir}/xxx
/usr/include/xxx => %{_includedir}/xxx
/usr/share/xxx => %{_datadir}/xxx
/usr/man/xxx => %{_mandir}/xxx

重新执行结果:

在/root/rpmbuild/RPMS/x86_64目录下可以看到转化后的RPM包

对rpm安装包进行测试
把生成的rpm包上传至测试服务器,解压

yum install -y ./openssh-*

特别注意:

升级完成后,需要检查sshd服务的状态,发现sshd状态异常,重启报错;

解决办法:

   1)把/etc/ssh/目录下的ssh_host相关的算法文件全部删除
    #rm -rf ssh_host_*
   2)#systemctl daemon-reload
   3)#systemctl restart sshd

重启完成后,利用别的服务器远程连接此服务器,报host_key认证有问题:

   检查升级完成后的服务器的/etc/pam.d/sshd文件发现比原来少了很多参数

升级前的/etc/pam.d/sshd文件

把升级前的文件内容,拷到升级后的对应的文件中,修改sshd服务的配置
PermitRootLogin yes 允许root登陆
PasswordAuthentication yes 允许使用密码登陆

  #systemctl restart sshd

重启sshd服务问题得到解决

相关文章
|
4月前
yum 可以安装rpm包
【6月更文挑战第18天】yum 可以安装rpm包
534 0
|
2月前
|
Ubuntu Unix Linux
在Ubuntu安装RPM文件
Ubuntu软件源包含数千个deb软件包,可以从Ubuntu软件中心或使用apt命令行安装。 Deb是所有基于Debian的Linux发行版,例如包括Ubuntu,Linux mint等发行版使用的安装包格式。 如果某些软件在Ubuntu软件源中不可用,可以通过启用适当的软件源来安装,然后使用APT命令安装。 在大多数情况下,当软件开发者不提供软件源时,他们都有一个下载页面,您可以在该页面下载并安装deb软件包,或者下载源码然后编译。 虽然不常见,但某些软件开发者可能会仅发布RPM包格式的文件。RPM是Red Hat及其衍生的Linux发行版,例如如CentOS,Fedora使用软件包
52 5
|
5月前
|
C语言
软件管理rpm与yum
软件管理rpm与yum
|
Linux
CentOS7下制作OpenSSH 8.4p1 RPM包
CentOS7下制作OpenSSH 8.4p1 RPM包
320 0
CentOS7下制作OpenSSH 8.4p1 RPM包
|
关系型数据库 MySQL Linux
rpm包和rpm工具
rpm包和rpm工具
423 0
|
关系型数据库 MySQL Linux
RPM包和rpm工具
RPM包和rpm工具
245 0