首页 > 其他分享 >openssh升级到openssh-9.4p1

openssh升级到openssh-9.4p1

时间:2023-09-26 10:11:38浏览次数:26  
标签:p1 -- openssh 9.4 rpm el7

1. openssh官方只提供源码包,我们选择自己将源码编译为rpm包来升级环境的openssh,需要安装的环境为CentOS7

https://www.openssl.org/source/

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

wget https://github.com/boypt/openssh-rpms/archive/refs/heads/main.zip
unzip main.zip 
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. 修改相关的配置

为wget增加不检查证书的参数 --no-check-certificate
# grep wget pullsrc.sh 
  wget --no-check-certificate $OPENSSLMIR/$OPENSSLSRC
  wget --no-check-certificate $OPENSSHMIR/$OPENSSHSRC
  wget --no-check-certificate $ASKPASSMIR/$ASKPASSSRC

openssh源码中是没有ssh-copy-id相关参数的,如果直接编译安装,会发现安装后没有ssh-copy-id命令,因此如果需要用到该命令,需要修改编译参数控制文件openssh.spec (大概在305行的位置)

# vim el7/SPECS/openssh.spec +305   # 插入以下内容
install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id

在388行的位置再继续插入以下内容,保存退出

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

修改openssl版本否会编译失败

[root@VM-0-12-centos openssh-rpms-main]# cat version.env 
#OPENSSLSRC=openssl-3.0.11.tar.gz    # 注释此版本
OPENSSLSRC=openssl-1.1.1v.tar.gz     # 修改为1.1.1
OPENSSHSRC=openssh-9.4p1.tar.gz
ASKPASSSRC=x11-ssh-askpass-1.2.4.1.tar.gz
PKGREL=4

OPENSSHVER=${OPENSSHSRC%%.tar.gz}
OPENSSHVER=${OPENSSHVER##openssh-}
OPENSSLVER=${OPENSSLSRC%%.tar.gz}
OPENSSLVER=${OPENSSLVER##openssl-}

3. 安装编译环境

yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel

4.拉取源码并编辑打包

# bash pullsrc.sh
# ll downloads/
total 11500
-rw-r--r-- 1 root root 1845094 Aug 10 11:15 openssh-9.4p1.tar.gz
-rw-r--r-- 1 root root 9893443 Aug  1 22:09 openssl-1.1.1v.tar.gz
-rw-r--r-- 1 root root   29229 Sep 20 08:54 x11-ssh-askpass-1.2.4.1.tar.gz

5.执行源码打包脚本

# bash compile.sh
# $?    # 检查执行结果是否成功,为0则成功
# ll el7/RPMS/x86_64/
total 15412
-rw-r--r-- 1 root root 5154360 Sep 25 22:11 openssh-9.4p1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 5181812 Sep 25 22:11 openssh-clients-9.4p1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 3911620 Sep 25 22:11 openssh-debuginfo-9.4p1-4.el7.x86_64.rpm
-rw-r--r-- 1 root root 1527116 Sep 25 22:11 openssh-server-9.4p1-4.el7.x86_64.rpm

6. 安装以上四个文件即可,或者使用ansible批量推送安装

# cat update_ssh9.4.yaml 
- hosts: "{{ server_group }}"
  tasks: 

    - name: Copy OpenSSH Update file
      copy: src=files/openssh-9.4p1/{{ item }} dest=/tmp/
      with_items:
        - openssh-9.4p1-4.el7.x86_64.rpm
        - openssh-clients-9.4p1-4.el7.x86_64.rpm
        - openssh-debuginfo-9.4p1-4.el7.x86_64.rpm
        - openssh-server-9.4p1-4.el7.x86_64.rpm

    - name: Install OpenSSH
      yum: name={{ packages }} state=present
      vars:
        packages:
          - /tmp/openssh-9.4p1-4.el7.x86_64.rpm
          - /tmp/openssh-clients-9.4p1-4.el7.x86_64.rpm
          - /tmp/openssh-debuginfo-9.4p1-4.el7.x86_64.rpm
          - /tmp/openssh-server-9.4p1-4.el7.x86_64.rpm

    - name: Del Histroy OpenSSH file
      file: path={{ item }} state=absent
      with_items:
        - /tmp/openssh-9.4p1-4.el7.x86_64.rpm
        - /tmp/openssh-clients-9.4p1-4.el7.x86_64.rpm
        - /tmp/openssh-debuginfo-9.4p1-4.el7.x86_64.rpm
        - /tmp/openssh-server-9.4p1-4.el7.x86_64.rpm
# ansible-playbook update_ssh9.4.yaml -e server_group=192.168.78.11

备注:如果使用openssl-3.0.11.tar.gz编译可能会报以下错误

RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.LsYNDz (%prep)
Aborted, error 1 in command: rpmbuild -ba SPECS/openssh.spec --target $(uname -m) --define "_topdir $PWD" --define "opensslver ${OPENSSLVER}" --define "opensshver ${OPENSSHVER}" --define "opensshpkgrel ${PKGREL}" --define 'no_gtk2 1' --define 'skip_gnome_askpass 1' --define 'skip_x11_askpass 1'

参考链接:https://zhuanlan.zhihu.com/p/652906168

标签:p1,--,openssh,9.4,rpm,el7
From: https://www.cnblogs.com/cyleon/p/17729502.html

相关文章

  • centos7升级openssh9.3p1
    centos7升级openssh9.3p1制作rpm包安装依赖包yuminstall-yrpm-buildgccgcc-c++glibcglibc-developenssl-developensslpcre-develzlibzlib-develmakewgetkrb5-develpam-devellibX11-develxmkmflibXt-develinitscriptslibXt-develimakegtk2-devellrzsz创建制......
  • P1967 [NOIP2013 提高组] 货车运输
    P1967[NOIP2013提高组]货车运输因为可能成环,这样可能导致到达点的最小权值不一,所以用最小生成树的方法重新建图然后我是利用倍增的思想建立从i点开始,到上面点的距离ff和最小权值ww因为最小权值不好直接建立,所以不如最后统一建立最后就是寻找最近公共祖先的模板了一组hack......
  • P1631 序列合并
    P1631序列合并思路思路一题目要求的是二维的,太麻烦,所以我们可以将其用一维划分,将每一组都变成线性的,那线性的就很好求了,直接排序然后从前往后算即可,那么就可以将这\(n\)组合并,但如果是整个都算出来再合并就会是\(O(n^2)\)的,所以可以只记录当前的,那么对于当前的最小的状态,......
  • 洛谷P1058 [NOIP2008 普及组] 立体图
    写在前面题解更新较少,请勿嗔怪。本文粗鄙而简陋,要获得更好的阅读体验,请移步https://www.luogu.com.cn/problem/solution/P1058。NOIp普及组2008的第四题,题目网站https://www.luogu.com.cn/problem/P1058。关于题目[NOIP2008普及组]立体图题目描述小渊是个聪明的孩子,他经......
  • P1032
    写这道不算难的题目是我遇到了不少问题,复述以下过程吧。由于数据很水,这道题用不到KMP算法,只要使用朴素算法进行字符串比对就可以了。首先,我错误的选择了dfs算法,导致了TLE的发生。这类求最优解的问题显然大多应该用bfs解决。其次,我忘了考虑如果一个字符串多处都可以用同一规则替......
  • PPT| 企业信息安全架构全貌 P17
        本人在四大咨询机构从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.   【智能制造数字化咨询】该PPT共86页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击关注下方。  ......
  • 概述NCP81599MNTXG USB供电(PD)控制器,NCP1342DADBDGD1R2G离线转换器、500kHz 9SOIC
    一、NCP81599 USB供电4开关降压升压控制器NCP81599MNTXGUSB供电(PD)控制器是一款同步降压升压控制器,经过优化,可将电池电压或适配器电压转换为笔记本电脑、平板电脑和台式机系统以及许多其他使用USBPD标准和C−型电缆的消费电子设备所需的电源轨。NCP81599专为需要动态控制压摆......
  • COMP3322 notes P1 - Internet & WWW Basic
    选这门课完全是为了推进我博客美化的大业!希望学完之后updatelogs里的一部分issues能自己亲手解决。首先来到InternetandWWWbasic:这些基本的network知识对接下来的front-endframework学习大有裨益。Internet,Web,DNS,HTTP等「最熟悉的陌生人」在这一节得以祛......
  • P1075 [NOIP2012 普及组] 质因数分解
    算法一根据唯一分解定理,小于\(n\)的最大的能整除\(n\)的整数一定就是答案,可以暴力枚举。时间复杂度\(O(n)\),实际得分\(60\)。算法二发现算法一不能通过的原因是较大的那个质数可能的取值范围太大了。而较小的那个质数一定小于等于\(\sqrtn\),我们枚举它即可。时间复......
  • P1024 [NOIP2001 提高组] 一元三次方程求解
    因为精度要求很低,所以有一个暴力的想法就是枚举区间内相差很小的两个数然后判断。保留两位小数后记得判重。考虑优化。发现根与根差的绝对值大于等于\(1\)这个条件没有利用。有了这个条件我们发现相邻两个整数之间(不包含端点)最多有一个根。于是可以先判掉整数然后在区间内有根......