CentOS-Stream-9升级openssh9.7p

embedded/2024/11/15 4:59:45/

CentOS Stream 9

ssh -V

在这里插入图片描述

需要的RPM包

openssh-9.7p1-1.el9.x86_64.rpm
openssh-clients-9.7p1-1.el9.x86_64.rpm
openssh-server-9.7p1-1.el9.x86_64.rpm

编译openssh

openssh官方只提供源码包,我们选择自己将源码编译为rpm包来升级环境的openssh,需要安装的环境为 CentOS Stream release 9
https://www.openssl.org/source/

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源码的版本信息

CentOS Stream release 9 可以使用 el7 的版本编译

在这里插入图片描述
编译成功

Wrote: /root/openssh-rpms-main/el7/SRPMS/openssh-9.7p1-1.el9.src.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-debuginfo-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-clients-debuginfo-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-server-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-debugsource-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-server-debuginfo-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-9.7p1-1.el9.x86_64.rpm
Wrote: /root/openssh-rpms-main/el7/RPMS/x86_64/openssh-clients-9.7p1-1.el9.x86_64.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.pWvm6r
+ umask 022
+ cd /root/openssh-rpms-main/el7/BUILD
+ cd openssh-9.7p1
+ rm -rf /root/openssh-rpms-main/el7/BUILDROOT/openssh-9.7p1-1.el9.x86_64
+ RPM_EC=0
++ jobs -p
+ exit 0
~/openssh-rpms-main

修改openssl版本

# cat version.env 
#OPENSSLSRC=openssl-3.0.11.tar.gz    # 注释此版本
OPENSSLSRC=openssl-1.1.1v.tar.gz     # 修改为1.1.1
OPENSSHSRC=openssh-9.7p1.tar.gz
ASKPASSSRC=x11-ssh-askpass-1.2.4.1.tar.gz
PKGREL=4OPENSSHVER=${OPENSSHSRC%%.tar.gz}
OPENSSHVER=${OPENSSHVER##openssh-}
OPENSSLVER=${OPENSSLSRC%%.tar.gz}
OPENSSLVER=${OPENSSLVER##openssl-}

修改openssh.spec文件

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

vim el7/SPECS/openssh.spec

在这里插入图片描述

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

在这里插入图片描述

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

下载编译包gcc等

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

在这里插入图片描述
编辑compile.sh,把el9版本的打包输出到el7的文件夹中

vim compile.sh

拉取源码

./pullsrc.sh

打包

./compile.sh

RPM包文件路径

ll el7/RPMS/x86_64/openssh-debuginfo-9.7p1-1.el9.x86_64.rpm
openssh-clients-debuginfo-9.7p1-1.el9.x86_64.rpm
openssh-server-9.7p1-1.el9.x86_64.rpm
openssh-debugsource-9.7p1-1.el9.x86_64.rpm
openssh-server-debuginfo-9.7p1-1.el9.x86_64.rpm
openssh-9.7p1-1.el9.x86_64.rpm
openssh-clients-9.7p1-1.el9.x86_64.rpm

升级openssh

##注释掉的根据实际情况处理
#查询原openssh8.9p1是否有安装openssh-askpass,若有需先删除
rpm -qa | grep  openssh
rpm -e openssh-askpass-gnome-8.9p1#原有openssh配置文件备份 
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup
cp /etc/pam.d/sshd /etc/pam.d/sshd.backup
cp /etc/pam.d/system-auth  /etc/pam.d/system-auth.backup#安装依赖文件(如果需要)
#yum install -y  libICE
#yum install -y  libSM
#yum install -y  libX11
#yum install -y  libXt
#yum install -y  atk
#yum install -y  cairo
#yum install -y  gdk-pixbuf2
#yum install -y  gtk2#openssh9.7p1 RPM包文件目录执行安装
yum localinstall -y openssh-*.rpm#检查相应配置文件后,还原备份文件(可选)
#cp /etc/ssh/sshd_config.backup /etc/ssh/sshd_config
#cp /etc/pam.d/sshd.backup  /etc/pam.d/sshd
#cp /etc/pam.d/system-auth.backup  /etc/pam.d/system-auth#可能出现的报错 :Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
解决办法:权限变成600chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key#重启sshd服务
#systemctl enable sshd 
systemctl restart sshd#检查SSH版本
ssh -V

http://www.ppmy.cn/embedded/11668.html

相关文章

实现Spring底层机制(三)

文章目录 阶段4—实现BeanPostProcessor机制1.文件目录2.初始化方法实现1.编写初始化接口InitializingBean.java2.MonsterService.java实现初始化接口3.容器中的createBean方法增加初始化逻辑,判断对象类型是否是InitializingBean的子类型,如果是&#x…

无人机发展历史

你知道吗?无人机竟然已经有这么多年的历史了!从最初的军事用途,到现在的民用、商用领域,无人机的发展简直是一部传奇! 🚀 遥想当年,无人机还只是军事领域的专属玩具,高不可攀。但如…

第二十七章:mybatis plus 如何自定义 SQL 查询条件

第二十七章:mybatis plus 如何自定义 SQL 查询条件 目标 掌握 mybatis plus 自定义查询SQL条件的方式理解如何基于mybatis plus自动 生成的代码扩展多表级联查询的扩展方法实验 1、准备两张表 CREATE TABLE `student` (`id` int(20) NOT NULL AUTO_INCREMENT,`name` varcha…

总结:css中水平居中

css水平居中功能很常用,但一直没有系统的总结过,今天来总结水平下常见的方式: 1. 文本或内联元素的居中: 使用 text-align: center; 属性可以让内部的文本和内联元素在容器中水平居中。 .container {text-align: center; }2. 块…

十大排序——6.插入排序

这篇文章我们来介绍一下插入排序 目录 1.介绍 2.代码实现 3.总结与思考 1.介绍 插入排序的要点如下所示: 首先将数组分为两部分[ 0 ... low-1 ],[ low ... arr.length-1 ],然后,我们假设左边[ 0 ... low-1 ]是已排好序的部分…

【QT进阶】Qt Web混合编程之使用ECharts显示各类折线图等

往期回顾 【QT进阶】Qt Web混合编程之QWebEngineView基本用法-CSDN博客 【QT进阶】Qt Web混合编程之CMake VS2019编译并使用QCefView(图文并茂超详细版本)-CSDN博客【QT进阶】Qt Web混合编程之html、 js的简单交互-CSDN博客 【QT进阶】Qt Web混合编程之使…

Error Code 12 Msg: Unable to find uri[model://ground_plane]

ubuntu16.04 安装turtlebot3仿真,运行之后发现报这个错误,然后没有小车 解决方案: https://blog.csdn.net/Moony_9/article/details/137553518

自己手动在Linux上实现一个简易的端口扫描器

背景 常常听到网络攻击有一个东西叫做端口扫描器,可以扫描指定服务器开放的端口,然后尝试连接,并寻找漏洞,最终攻破服务器。而那些使用的端口扫描器都是一个个现成的程序,看上去很厉害的样子。而实际上这些东西对于懂…