Linux|编译最新版的openssh-server-9.3的rpm包(一)

这篇具有很好参考价值的文章主要介绍了Linux|编译最新版的openssh-server-9.3的rpm包(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:

openssh服务的重要性不需要在这里废话了,而面对各种系统漏洞服务漏洞,我们最好的应对手段就是升级了,因此,我们的服务器很可能有升级内核的需求,以及升级系统内的重要服务的需求,而作为与服务器交互的服务sshd来说,漏洞也是非常多的,但该服务是基础服务,是不可能停止的,因此,我们需要升级它。

那么,如果只是单独的几个服务器,使用的是带有漏洞的低版本的sshd服务,手动的编译安装将该服务升级是可以实现的(通常,手工编译一个sshd服务也就最多半小时,包括测试环节),而如果有若干个服务器都需要升级,那么,显然手动编译升级的方式是不太现实的,太耗时费力了。

因此,在有大量的同一操作系统的服务器的情况下,显然编译一个适用于自身情况的sshd服务安装rpm包是比较合适的,可以节约大量的编译时间(一次编译,到处运行),并且可以结合脚本进行批量部署,从而提升运维的效率。

那么,本文将就如何在centos7下编译一个可用于centos7,升级sshd服务到最新版本的9.3做一个示例演示。

示例服务器的系统版本:

[root@k8s-node2 x86_64]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 

####注:编译出来的rpm包适用于所有centos7或者redhat7以及等同于centos7的欧拉操作系统 

一,

创建相关目录

这些目录主要是存放源码包和编译出来的rpm包

[root@k8s-node2 ~]# mkdir -p /root/rpmbuild/SOURCES
[root@k8s-node2 ~]# mkdir -p /root/rpmbuild/SPECS
[root@k8s-node2 ~]# cp openssh-9.3p1.tar.gz   /root/rpmbuild/SOURCES/

二,

制作rpm的准备工作

#安装必要的包,关键的包是rpm-build, 其它的是依赖
  yum install rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel unzip libXt-devel imake gtk2-devel -y

#解压tar包
  cd /root/rpmbuild/SOURCES/
  wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz
  tar -zxf openssh-9.3p1.tar.gz 
#复制出官方提供的spec文件,rpm-build需要根据这个文件来制作rpm包
  cp openssh-9.3p1/contrib/redhat/openssh.spec .
#关掉no_gnome_askpass no_x11_askpass这两个参数
  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

三,

开始rpm包的制作

主要命令是:

rpmbuild -ba openssh.spec

###由于编译工作可能会有非常多的错误,因此,本次编译工作使用试错法,也就是直接开始,有错就解决,直到编译工作完成。

####下面对编译中的错误做一个总结

错误1:

[root@k8s-node2 SOURCES]# rpmbuild -ba openssh.spec
error: File /root/rpmbuild/SOURCES/x11-ssh-askpass-1.2.4.1.tar.gz: No such file or directory

两个方案任选一个即可 

解决方案1:

请前往网址:

https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/

下载tar包然后手动上传到/root/rpmbuild/SOURCES/就可以了

不用wget的原因是wget下载的tar包在rpmbuild执行时解压会报错,下载后tar -zxf无法执行,只能手动下载然后上传

解决方案2:

屏蔽掉askpass,但还是需要下载x11-ssh-askpass-1.2.4.1.tar.gz在当前目录

sed -i -e "s/%global no_x11_askpass 0/%global no_x11_askpass 1/g" openssh.spec
wget https://src.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz

错误2:

openssl开发包版本过高

[root@k8s-node2 SOURCES]# rpmbuild -ba openssh.spec
error: Failed build dependencies:
	openssl-devel < 1.1 is needed by openssh-9.3p1-1.el7.centos.x86_64

经检查,确实openssl的开发包版本过高,但卸载该包将会引起一些不必要的麻烦(openssl是一个比较重要的内置软件) 

[root@k8s-node2 SOURCES]# rpm -qa |grep openssl
openssl-libs-1.0.2k-8.el7.x86_64
openssl-1.0.2k-8.el7.x86_64
xmlsec1-openssl-1.2.20-5.el7.x86_64
openssl-devel-1.0.2k-8.el7.x86_64

解决方案:

编译前忽略openssl开发包的检查,也就是注释检查行

sed -i '/openssl-devel < 1.1/s/^/#/' openssh.spec

编译是比较快的啊,啪的一下就好了,编译出来的rpm包在以下目录,以下rpm包拿到其它同操作系统的服务器就可以愉快的安装使用了:

[root@k8s-node2 SOURCES]# cd ../RPMS/x86_64/
[root@k8s-node2 x86_64]# ls
openssh-9.3p1-1.el7.centos.x86_64.rpm                openssh-clients-9.3p1-1.el7.centos.x86_64.rpm    openssh-server-9.3p1-1.el7.centos.x86_64.rpm
openssh-askpass-gnome-9.3p1-1.el7.centos.x86_64.rpm  openssh-debuginfo-9.3p1-1.el7.centos.x86_64.rpm

正常的编译输出,尾部如下:文章来源地址https://www.toymoban.com/news/detail-626148.html

。。。。。。。。前面的略略略。。。。。。。。。。。
bpango-1.0.so.0()(64bit) libpangocairo-1.0.so.0()(64bit) libpangoft2-1.0.so.0()(64bit) libpthread.so.0()(64bit) rtld(GNU_HASH)
Obsoletes: ssh-extras
Processing files: openssh-debuginfo-9.3p1-1.el7.centos.x86_64
Provides: openssh-debuginfo = 9.3p1-1.el7.centos openssh-debuginfo(x86-64) = 9.3p1-1.el7.centos
Requires(rpmlib): rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 rpmlib(CompressedFileNames) <= 3.0.4-1
Checking for unpackaged file(s): /usr/lib/rpm/check-files /root/rpmbuild/BUILDROOT/openssh-9.3p1-1.el7.centos.x86_64
Wrote: /root/rpmbuild/SRPMS/openssh-9.3p1-1.el7.centos.src.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-9.3p1-1.el7.centos.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-clients-9.3p1-1.el7.centos.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-server-9.3p1-1.el7.centos.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-askpass-gnome-9.3p1-1.el7.centos.x86_64.rpm
Wrote: /root/rpmbuild/RPMS/x86_64/openssh-debuginfo-9.3p1-1.el7.centos.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.JgTTnt
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd openssh-9.3p1
+ rm -rf /root/rpmbuild/BUILDROOT/openssh-9.3p1-1.el7.centos.x86_64
+ exit 0

到了这里,关于Linux|编译最新版的openssh-server-9.3的rpm包(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu openssh-server 离线安装

    经常用到ubunutu 20.04容器,但是没有ssh比较难调试代码,离线环境下安装方法: 安装以下三个软件包,点击openssh下载链接可下载: 1、openssh-client_8.2p1-4_amd64.deb 2、openssh-sftp-server_8.2p1-4_amd64.deb 3、openssh-server_8.2p1-4_amd64.deb 然后执行 正常装完即可。 其余ubuntu版本可以自己搜一下

    2024年02月01日
    浏览(40)
  • Linux 安装最新版Jenkins

    参考地址:https://pkg.jenkins.io/redhat-stable/ 建立java软链接 /etc/sysconfig/jenkins /etc/init.d/jenkins 配置jenkins 启动信息(启动时,本地JAVA信息没有部署到jenkins) 出现问题 : systemctl start jenkins 启动失败( jenkins.service: Start request repeated too quickly. ) 修改端口 8080为10240(上面配置没有端

    2024年02月15日
    浏览(40)
  • Linux安装ES最新版

    链接:https://pan.baidu.com/s/16SOoN7ZveFu1ly9B2wudoA?pwd=8fm7  知识准备 https://blog.csdn.net/tongxin_tongmeng/article/details/126342599  下载、解压ES8 ES8上传Linux ES8运行环境(☆☆☆☆☆) ES8环境变量 创建新用户 ES服务启动、查看、关闭 ES服务访问  ES8关闭密码认证

    2023年04月09日
    浏览(48)
  • KEIL5MDK最新版(3.37)安装以及旧编译器(V5)安装

    方式一:keil5官网链接。需要填写信息(如左图,可以乱填),然后提交,点击软件下载(如右图),问题就是下载慢,但问题不大。 方式二:keil5云盘链接链接,提取码:1234,笔者当时最新的版本是3.37。 下载后安装,需要注意的是不要出现任何中文就行。 破解软件链接:

    2023年04月08日
    浏览(49)
  • 2023年最新版kali linux安装教程

    一、前期准备 前排提醒,文末有 绿色版 安装包免费领取! 二、VMware虚拟机配置 1、打开vmware,点击创建新的虚拟机 2、选择自定义(高级)选项,点击下一步 3、继续下一步 4、选择【稍后安装操作系统】,然后点击下一步 5、客户机操作系统选择【Linux】,版本选择【Debian】,

    2023年04月16日
    浏览(64)
  • Linux安装最新版Docker完整教程(建议收藏)

    1.1 查看服务器系统版本以及内核版本 1.2 查看服务器内核版本 这里我们使用的是CentOS 7.4 系统,内核版本为3.10 1.3 安装依赖包 1.4 设置阿里云镜像源 2.1 Docker版本说明 2.2 docker-ce安装 2.3 启动docker并设置开机自启 3.1 仓库 (repository) 3.2 镜像(Image) 3.3 容器(Container) 5.1 搜索镜像 5.2

    2023年04月16日
    浏览(55)
  • AWVS-Linux最新版保姆级 安装教程

    免责声明: 由于传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢! Acunetix AWVS Version: 23.11.231123131 Version: 23.11.2311

    2024年01月21日
    浏览(62)
  • Linux环境下安装并配置最新版Android Studio

    Linux环境下安装并配置最新版Android Studio Android Studio是一款强大的用于开发Android应用程序的集成开发环境。本文将为您提供Linux环境下安装和配置最新版Android Studio的详细步骤。 步骤1:下载Android Studio 首先,我们需要从官方网站下载最新版的Android Studio。请进入Android Studio官方

    2024年02月06日
    浏览(53)
  • Jenkins持续集成,在Linux中安装最新版Jenkins(详细)

    去年从6月28日发布的 Jenkins 2.357 和即将发布的 9 月 LTS 版本开始,Jenkins 最低需要 Java 11。 也就是说最新版本的jenkins (2.403)不支持jdk1.8版本了,最低需要jdk1.11 1、安装jdk 以centos 为例,yum安装 如果之前有安装jdk1.8 需先卸载掉 检查当前版本号

    2024年02月12日
    浏览(43)
  • 手把手带你linux部署清华大学大模型最新版 chaglm2-6b

    准备工作: 如果安装出现问题,可尝试手动分别安装torch 1 # 1第一步安装虚拟环境并激活环境 3 安装torch第一种方式 pytorch官网:https://pytorch.org/ 经过多次尝试,发现conda装,真的很快,真香。前几次尝试用pip装torch都会出现timeout的错误,这个跟服务器有关系,视情况而定。

    2024年02月12日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包