当前位置: 首页 > news >正文

【每日运维】RockyLinux8.6升级OpenSSH9.4p1

为什么需要升级openssh呢,因为很多项目进行漏扫结果都会涉及到这个服务器核心组件,一想到以前升级openssh带来的各种依赖性问题就头疼,不管是什么发行版,升级这个东西真的很烦,这次发现可能还会有好一点的通用一点的升级方法,所以有个这个验证记录

制作RPM离线包

你需要升级什么环境的openssh就准备什么环境的镜像包,本地创建虚拟机进行验证和打包

环境准备

  • 标准的RockyLinux 8.6
  • 虚拟机有外网权限
  • 默认的openssh版本:8.0p1
    在这里插入图片描述

制作 rpm 包

  1. 准备编译环境基础工具
# 基础包
dnf install wget make gcc perl rpm-build gtk2-devel krb5-devel libXt-devel openssl-devel pam-devel -y# 基础包
wget http://www.rpmfind.net/linux/centos/8-stream/PowerTools/x86_64/os/Packages/imake-1.0.7-11.el8.x86_64.rpm# 安装
dnf localinstall imake-1.0.7-11.el8.x86_64.rpm -y

在这里插入图片描述

  1. 下载源码包
# 创建编译构建目录
mkdir -p /root/rpmbuild/SOURCES# 下载源码包
cd /root/rpmbuild/SOURCES
wget https://pkgs.fedoraproject.org/repo/pkgs/openssh/x11-ssh-askpass-1.2.4.1.tar.gz/8f2e41f3f7eaa8543a2440454637f3c3/x11-ssh-askpass-1.2.4.1.tar.gz
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

在这里插入图片描述
3. 解压并配置

# 解压
tar -xf openssh-9.4p1.tar.gz# 拷贝文件
cp openssh-9.4p1/contrib/redhat/openssh.spec ./# 修改文件内容
sed -i 's/BuildRequires: openssl-devel < 1.1/#BuildRequires: openssl-devel < 1.1/g' openssh.spec

在这里插入图片描述
4. 生成rpm包

# 执行即可
rpmbuild -ba openssh.spec

在这里插入图片描述
在这里插入图片描述

  1. 检查生成的rpm包
    在这里插入图片描述

制作离线依赖包

我把上面的rpm包单独放在一个目录下,最后方便打包

在这里插入图片描述

  1. 我们上一步已经完成了对openssh9.4p1离线包的制作,如果我们直接进行rpm命令进行安装,可能就会产生依赖问题,比如说:
    在这里插入图片描述
  2. 所以我们还需要准备依赖包的离线文件
# 基于上述rpm包下载需要的依赖离线文件放在对应文件
yum install -y --downloadonly --downloaddir=/root/install_pckg_rpm/dpndncy_pckg openssh-9.4p1/*.rpm

在这里插入图片描述
3. 这样我们就完成了所有需要的RPM包文件了,就可以进行openssh升级工作了

升级openssh

  1. 升级方案步骤
卸载旧版本的openssh
虚拟控制台进行升级,因为没有ssh了
重启服务器验证生效
  1. 升级实操
# 卸载旧版本的openssh

在这里插入图片描述

# 安装所有的rpm包
rm -rf /etc/ssh

在这里插入图片描述
在这里插入图片描述

启动和配置

安装成功以后,是不能直接通过ssh去连接的,需要额外配置

在这里插入图片描述

  1. 配置sshd_config文件

在这里插入图片描述
2. 关闭selinux(这个我一般都是关闭了的)
3. 重启后就可以连接了
在这里插入图片描述

总结

  • 整个安装过程会擦除掉以前所有ssh相关信息和配置,需要注意这一点
  • 这可能作为一个通用的升级验证过程,以前总是各种编译安装openssh,各种依赖也不好解决
  • 如果没法直接控制台操作服务器,可以安装 telnet 工具,临时采用不安全连接方式进行升级openssh
  • 对上述验证过程中升级的各种底层依赖包,不知道是否有风险,所以最好还是在升级之前做好虚拟机快照备份
  • 上述生成的rpm包可以打包带走,用在任意一台相同系统的环境下,都可以进行升级操作了
http://www.lryc.cn/news/151415.html

相关文章:

  • libdrm全解析三十八 —— 源码全解析(35)
  • jar包和war包的区别
  • CloudCompare 二次开发(10)——点云投影到平面
  • 如何制作并运行 jar 程序
  • Hadoop MapReduce 调优参数
  • springboot 与 Redis整合
  • 如何高效地设计测试用例并评审
  • 基于python+Django知识图谱的医疗问答系统设计与实现
  • cuda编程常见问题
  • QTday3
  • docker镜像是如何导入的?
  • 四川大学874考研真题00-23
  • openGauss学习笔记-58 openGauss 高级特性-资源池化
  • centos升级cmake之相关问题解决
  • vcs仿真教程(查看断言)
  • 2023开学礼新疆石河子大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工
  • javaee spring aop 切入点表达式
  • js 获得元素的offsetLeft
  • 【Spring面试题】IOC控制反转和DI依赖注入(详解)
  • LeetCode 2511. 最多可以摧毁的敌人城堡数目
  • bazel远程缓存(Remote Cache)
  • 算法竞赛入门经典习题2-6 排列(permutation)
  • 队列的链表实现 题目(难度1/10)
  • SpringMVC常用的三种获取请求参数的方式
  • 2023开学礼新疆理工学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工
  • 数据结构----结构--线性结构--字符串
  • 数据工厂-生成接口通用用例
  • N 字形变换
  • STM32+RTThread配置以太网无法ping通,无法获取动态ip的问题
  • python编写MQTT订阅程序