如何编译打包OpenSSH 9.4并实现批量升级

1 介绍

openssh 9.4版本已于8月10号发布,安全团队又催着要赶紧升级环境里的ssh版本,本文主要介绍Centos5、Centos6、Centos7下openssh 9.4源码编译rpm包以及批量升级服务器openssh版本的方法。关注公众号后台回复ssh可获取本文相关源码文件。

https://www.openssh.com/releasenotes.html

2 将源码编译为rpm包

2.1 编译脚本介绍

由于openssh官方只提供源码包,网上下载的rpm包有可能遇到各种依赖问题,因此我们选择自己将源码编译为rpm包来升级环境的openssh。当然编译过程也尽量简单化,这里我们直接使用开源的脚本进行编译。

https://github.com/boypt/openssh-rpms

编译需要涉及到很多开发软件的下载安装,建议使用一台虚拟机来进行操作。先下载编译脚本,解压

[root@etcd-1 ~]# wget https://github.com/boypt/openssh-rpms/archive/refs/heads/main.zip
[root@etcd-1 ~]# unzip main.zip
[root@etcd-1 ~]# cd openssh-rpms-main/

简单看下代码结构

  • compile.sh:编译脚本

  • el5、el6、el7:对应CentOS5、6、7三个系统,编译相关的参数由SPECS目录下的openssh.spec控制。编译好的rpm包放在RPMS目录下。

  • pullsrc.sh:openssh相关源码下载脚本

  • version.env:定义了openssh及openssl源码的版本信息

图片

2.2 修改代码

先修改一下pullsrc.sh脚本,给wget添加上"--no-check-certificate"参数,否则可能因为证书问题导致源码下载失败。

图片

另外默认openssh源码中是没有ssh-copy-id相关参数的,如果直接编译安装,会发现安装后没有ssh-copy-id命令,因此如果需要用到该命令,需要修改编译参数控制文件openssh.spec。本次要升级的环境为CentOS7,因此我只修改el7目录下的SPECS/openssh.speec文件,在如下位置添加一行。

install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id

图片

继续修改el7目录下的SPECS/openssh.speec文件,在如下位置添加一行。

%attr(0755,root,root) %{_bindir}/ssh-copy-id

图片

2.3 准备编译环境

[root@etcd-1 openssh-rpms-main]# yum groupinstall -y "Development Tools"
[root@etcd-1 openssh-rpms-main]# yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel

2.4 拉取源码并编译打包

[root@etcd-1 openssh-rpms-main]# bash pullsrc.sh ##拉去源码包

执行完成后检查下download目录,相关的源码包是否已下载好,服务器没有网络,可以从下面的链接直接下载好传到download目录下。

https://www.openssl.org/source//openssl-1.1.1v.tar.gz

https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

图片

执行源码打包脚本

[root@etcd-1 openssh-rpms-main]# bash compile.sh

编译完成检查编译是否成功

图片

检查rpm包是否都以打包好

图片

3 批量升级服务器openssh版本至9.4

3.1 脚本介绍

脚本会用到ansible,因此执行脚本的服务器上需要安装ansible。获取到脚本后,先解压

[root@172-20-17-60 ~]# tar xvf ssh_9.4.tar.gz
[root@172-20-17-60 ~]# cd ssh_9.4

脚本主要文件如下

  • hosts: ansible主机清单文件,填写待升级ssh版本的服务器ip及用户名密码

  • rpms:存放待升级的openssh相关的rpm包。可以将前面编译好的openssh包放入该路径下

  • ssh_update.sh:ssh升级脚本,将会推送到各个服务器

  • ssh_update.yaml:升级时ansible使用的playbook

  • update_ssh.sh:主脚本,通过该脚本来执行ansible的playbook

图片

3.2 自定待升级服务器信息

node1为主机组,主机组下填写服务器ip,服务器用户名密码相同的,可以填在一起

  • ansible_user:填写用户名

  • ansible_ssh_pass:填写登录密码

如果用其它用户名或密码不同的服务器,可以填写到主机组node2下,并可新增其它主机组

图片

3.3 执行脚本,开始升级openssh版本

[root@172-20-17-60 ssh_9.4]# bash update_ssh.sh

检查ssh版本是否已升级完成

图片

服务上检查openssh是否成功升级到9.4版本

图片

检查ssh是否能正常登录到服务器

图片

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QT 消息对话框按钮显示

前言 搞QT嘛,大多数都是军工。都要国产化,而且消息对话框的按钮的英文也不是很得劲,所以需要汉化。使用静态函数的按钮就是显示英文,汉化的代码如下。 void Widget::on_pushButton_clicked() {QMessageBox box(QMessageBox::Inf…

ES基础操作

1.创建索引 在 Postman 中,向 ES 服务器发 PUT 请求 : http://127.0.0.1:9200/shopping 后台日志 重复发送 PUT 请求添加索引 : http://127.0.0.1:9200/shopping ,会返回错误信息 : 2.获取单个索引相关信息 在 Postman 中&#…

Springboot+mybatis-plus+dynamic-datasource+Druid 多数据源 分布式事务

Springbootmybatis-plusdynamic-datasourceDruid 多数据源事务,分布式事务 文章目录 Springbootmybatis-plusdynamic-datasourceDruid 多数据源事务,分布式事务0.前言1. 基础介绍ConnectionFactoryAbstractRoutingDataSource 动态路由数据源的抽象类 Dyn…

CSS学习笔记01

CSS笔记01 什么是CSS CSS(Cascading Style Sheets ):层叠样式表,也可以叫做级联样式表,是一种用来表现 HTML 或 XML 等文件样式的计算机语言。字体,颜色,边距,高度,宽度…

5 群起集群

1.在启动集群之前,先配置workers,有几个节点就配置几个 [atguiguhadoop102 hadoop]$ vim /opt/module/hadoop-3.1.3/etc/hadoop/workers在该文件中增加如下内容: hadoop102 hadoop103 hadoop104 注意:该文件中添加的内容结尾不允许有空格&a…

成都瀚网科技:抖店如何经营?

作为热门的短视频分享平台,抖音不仅是一种娱乐工具,更是一个蕴藏着无限商机的电商平台。开店、抖音下单成为很多人的选择。那么,抖音如何开店、下单呢? 1、如何在抖音上开店和下单? 注册账号:首先&#xff…

vue 后台管理系统登录 记住密码 功能(Cookies实现)

安装插件 import Cookies from js-cookie 组件引入 import Cookies from js-cookie; 存值: Cookies.set(username, state.account, { expires: 30 }); // username 存的值的名字,state.account 存的值 expires 存储的时间,30天Cookies…

mysql sql_mode数据验证检查

sql_mode 功能 sql_mode 会影响MySQL支持的sql语法以及执行的数据验证检查。通过设置sql_mode ,可以完成不同严格程度的数据校验,有效地保障数据准确性 sql_mode 严格模式 VS 宽松模式 宽松模式 比如,插入的数据不满足 表的数据类型,也可能…

2023年高教社杯 国赛数学建模思路 - 案例:ID3-决策树分类算法

文章目录 0 赛题思路1 算法介绍2 FP树表示法3 构建FP树4 实现代码 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 算法介绍 FP-Tree算法全称是FrequentPattern Tree算法,就是频繁模…

opencv 车牌号的定位和识别+UI界面识别系统

目录 一、实现和完整UI视频效果展示 主界面: 识别结果界面:(识别车牌颜色和车牌号) 查看历史记录界面: 二、原理介绍: 车牌检测->图像灰度化->Canny边缘检测->膨胀与腐蚀 边缘检测及预处理…

Vue3(开发h5适配)

在开发移动端的时候需要适配各种机型&#xff0c;有大的&#xff0c;有小的&#xff0c;我们需要一套代码&#xff0c;在不同的分辨率适应各种机型。 因此我们需要设置meta标签 <meta name"viewport" content"widthdevice-width, initial-scale1.0">…

第十四课:采用 Qt 开发翻页/分页/多页窗体组件

功能描述&#xff1a;采用 Qt 开发一个翻页/分页/多页的窗体组件&#xff0c;封装为 QWidget 的子类&#xff0c;在你的应用程序中可直接使用。 一、最终演示效果 本次制作的翻页/分页/多页窗体组件是基于 Qt 开发&#xff0c;整个程序封装成 PageWidget 类&#xff0c;继承于…

【微信红包】Axure聊天发红包原型图,含流程图和PRD产品文档

作品概况 页面数量&#xff1a;共 60 页 兼容软件&#xff1a;Axure RP 9/10&#xff0c;不支持低版本 应用领域&#xff1a;聊天软件、社交软件 作品申明&#xff1a;页面内容仅用于功能演示&#xff0c;无实际功能 作品特色 本作品为「发红包」的原型设计图&#xff0c…

Linux_4_文本处理工具和正则表达式

目录 1文本编辑工具之神VIM1.1 vi和vim简介1.2使用vim1.2.1 vim 命令格式1.2.2三种主要模式和转换 1.3扩展命令模式1.3.1扩展命令模式基本命令1.3.2 地址定界1.3.3查找并替换1.3.4定制vim的工作特性1.3.4.1行号1.3.4.2忽略字符的大小写1.3.4.3白动缩进1.3.4.4复制粘贴保留格式1…

商城-学习整理-集群-K8S-集群环境部署(二十四)

目录 一、MySQL集群1、mysql集群原理2、Docker安装模拟MySQL主从复制集群1、下载mysql镜像2、创建Master实例并启动3、创建 Slave 实例并启动4、为 master 授权用户来同步数据1、进入 master 容器2、进入 mysql 内部 &#xff08;mysql –uroot -p&#xff09;3、查看 master 状…

Haproxy+Keepalive 整合rabbitmq实现高可用负载均衡

Haproxy 实现负载均衡 HAProxy 提供高可用性、负载均衡及基于 TCPHTTP 应用的代理&#xff0c;支持虚拟主机&#xff0c;它是免费、快速并且可靠的一种解决方案&#xff0c;包括 Twitter,Reddit,StackOverflow,GitHub 在内的多家知名互联网公司在使用。HAProxy 实现了一种…

响应式web-PC端web与移动端web(H5)兼容适配 选型方案

背景 项目需要&#xff0c;公司已经有一套PC端web&#xff0c;需要做一套手机端浏览器可用的&#xff0c;但是又想兼容pc端&#xff0c;适配的web项目。 以下是查阅到响应布局现成的开源模版。根据自己技术栈&#xff0c;vue2,js来搜索相关的开源项目。 RuoYi 使用若依快速…

【LeetCode75】第三十七题 二叉树中的最长交错路径

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 给我们一棵二叉树&#xff0c;问我们在这棵树里能找到的最长交错路径。最长交错路径就是在二叉树里一左一右一左一右这样走&#xff0c;最…

后端面试话术集锦第三篇:spring cloud 面试话术

🚗后端面试集锦目录 💖后端面试话术集锦第一篇:spring面试话术💖 💖后端面试话术集锦第二篇:spring boot面试话术💖 💖后端面试话术集锦第三篇:spring cloud面试话术💖 💖后端面试话术集锦第四篇:ElasticSearch面试话术💖 💖后端面试话术集锦第五篇:r…

利用深度蛋白质序列嵌入方法通过 Siamese neural network 对 virus-host PPIs 进行精准预测【Patterns,2022】

研究背景&#xff1a; 病毒感染可以导致多种组织特异性损伤&#xff0c;所以 virus-host PPIs 的预测有助于新的治疗方法的研究&#xff1b;目前已有的一些 virus-host PPIs 鉴定或预测方法效果有限&#xff08;传统实验方法费时费力、计算方法要么基于蛋白结构或基因&#xff…