linux共有云主机ssh升级(以openEuler22.03为例)

news2024/9/21 0:33:04

目录

  • 为什么要升级ssh
    • 怎么查看CVE
    • 如何查找新版本的openssh
      • OpenSSH
  • 升级ssh步骤
    • 1. 下载源码包
    • 2. 备份旧文件防止升级失败
    • 3. 停止并卸载旧ssh
    • 4. 解压、编译、编译安装新ssh
    • 5. 修改systemd文件以便systemctl使用sshd
    • 6. 测试

为什么要升级ssh

openssh作为使用最为广泛的linux下ssh程序,一旦被挖掘出危险漏洞(CVE)就很容易影响生产、资产的安全,因此即使根据披露出的CVE找到对应的解决方法很关键。
而升级openssh版本,是解决cve一个最方便最有效的方法之一。

怎么查看CVE

可以通过各大厂商的cve披露网站,如阿里云的:阿里云漏洞库
在这里插入图片描述
这个网站披露了很多CVE漏洞,并提供了一定的解决方法,如搜索openssh的cve
在这里插入图片描述
在这里插入图片描述

如上图,就推荐将openssh升级到9.8p1的版本。

升级ssh有两种方式:

  • 第一种:找到对应版本的rpm包,直接通过rpm工具进行升级。
  • 第二种:通过下载官网最新的源码包,通过源码包升级。

rpm包和源码包最大的区别就在于,源码包是实时更新的,而且可以自定义安装路径和功能。如果要想下载最新版本的软件,最好是通过源码包进行编译安装
这里的升级OpenSSH我们将使用源码包进行升级。
同时操作系统的环境为openEuler22.03sp2

如何查找新版本的openssh

那么如何搜索到最新的/需要的软件版本?
也推荐使用各大厂商的镜像站,如阿里云的:阿里巴巴开元镜像站
在这里插入图片描述

OpenSSH

openssh实际是openBSD下的一个运用广泛的ssh实现,因此openssh是挂载openBSD之下的。
我们可以通过在镜像站搜索openbsd后查找到openssh
在这里插入图片描述
进入openssh后,还有两种不同的tar.gz的源码包:

  • openbsd/openssh/下的这个源码包,是openbsd架构的版本包;
  • openbsd/openssh/portable/下的这个源码包,是可移植的openssh源码包,我们使用这个,便于在openEuler中使用。
    在这里插入图片描述

这个就是我们待会需要安装的源码包,右键复制链接
在这里插入图片描述
在这里插入图片描述

在OpenBSD的源代码树中,openssh 是一个经常被提及的例子,因为它是一个广泛使用的开源安全外壳协议(SSH)的实现,而且它确实具有很好的可移植性。如果你在 portable/ 目录下发现了一个 opensshtar.gz 包,同时在它的父目录也有一个 tar.gz 包,这可能有以下几个原因:

  1. OpenBSD版本与可移植版本
    • portable/ 目录下的 tar.gz 包通常包含了 openssh 的可移植代码,这意味着这个包是为了在其他类Unix系统上编译和运行 openssh 而准备的。它包含了必要的兼容性层和补丁,使得 openssh 能够在不同的操作系统上工作。
    • portable/ 目录的父目录(可能是 src/ 目录下的某个位置)的 tar.gz 包可能是OpenBSD专用的 openssh 版本。这个版本可能包含了特定于OpenBSD的特性和优化。
  2. 版本差异
    • 有时候,portable/ 目录下的 tar.gz 包可能代表了一个较旧或者较新的版本,而父目录下的包则是为OpenBSD当前版本特别维护的版本。这种情况可能发生在OpenBSD的开发过程中,当上游的 openssh 有更新时,OpenBSD的开发者可能还没有将这些更新应用到他们的系统上。
  3. 维护和更新流程
    • OpenBSD的开发者可能会定期从 portable/ 目录下的可移植版本更新OpenBSD专用的 openssh 包。这意味着 portable/ 目录下的包可能是一个参考点,用于将更新和修复合并到OpenBSD的官方版本中。
  4. 构建和分发
    • 在构建过程中,可能需要从 portable/ 目录下的包中提取代码,然后应用OpenBSD特定的补丁和配置,以生成最终的包,这个包会被放在父目录下。
      总之,这两个 tar.gz 包的存在是为了满足不同的需求:一个是通用的、可移植的 openssh 版本,另一个是专门为OpenBSD优化的版本。用户和系统管理员可以根据自己的需求选择使用哪个包。

升级ssh步骤

1. 下载源码包

wget https://mirrors.aliyun.com/openssh/portable/openssh-9.8p1.tar.gz
# 该路径如何获取已在上一部分进行了介绍
# 这种方式需要你的主机能访问公网,本文介绍的是公有云主机,因此可以访问公网

在这里插入图片描述

基本上本机上有成功运行的ssh时,不会缺少运行ssh的软件包openssl-devel zlib-devel
但是源码安装,需要gcc、make等包,没有的话需要安装

yum install -y gcc make

2. 备份旧文件防止升级失败

mkdir /tmp/ssh-bak
cd /tmp/ssh-bak/

[rcp -a /etc/ssh .
cp -a /etc/pam.d .
cp -a /usr/lib/systemd/system/sshd.service .
cp -a /usr/bin/ssh ./ssh.bak
cp -a /usr/sbin/sshd ./sshd.bak

[root@ecm-98ce ssh-bak]# ls
pam.d  ssh  ssh.bak  sshd.bak  sshd.service

# /etc/ssh为ssh的核心配置目录
# /etc/pam.d/sshd为ssh是否支持pam认证
# /usr/lib/systemd/system/sshd.service是ssh的服务单元配置文件,可以使用systemd管理  
# /usr/bin/ssh 是ssh的可执行文件
# 以上最核心的是/etc/ssh,保存你的系统原来的所有ssh配置信息

由于是云主机,修改过默认是ssh端口,因此查看一下ssh的端口以便后续直接使用而不用放行安全组

 cat /etc/ssh/sshd_config | grep -i port

3. 停止并卸载旧ssh

systemctl stop sshd
# 注意,停止后需要退出已经登陆着的用户,才可以完全停止ssh

rpm -e --nodeps `rpm -qa | grep openssh`
# 先查询openssh的已安装文件,再忽略依赖关系强制卸载

4. 解压、编译、编译安装新ssh

如果无法安装,可能需要升级openssl和zlib等相关依赖的版本

# 解压
tar -xvf openssh-9.8p1.tar.gz

# 进入目录
cd openssh-9.8p1/

# 预编译
./configure --prefix=/usr --sysconfdir=/etc/ssh   
# --prefix=/usr 指定二进制程序安装路径   
# --sysconfdir  指定主配置文件安装路径   
# 这一步会检查当前系统的工具和依赖,如果没有通过请安装对应的工具和依赖再执行一次

在这里插入图片描述

# 编译
make

# 编译安装
make install

在这里插入图片描述

在这里插入图片描述

如果在编译时出现以下报错,可能的原因是密钥文件权限过大,可以修改成600再编译
在这里插入图片描述

chmod 600 /etc/ssh/ssh*key

可以通过ssh -V查看已经安装成功
在这里插入图片描述

5. 修改systemd文件以便systemctl使用sshd

将之前备份的systemd的sshd.service文件拷贝回原本的位置

cp /tmp/ssh-bak/sshd.service /usr/lib/systemd/system/

在这里插入图片描述

在这里插入图片描述

6. 测试

在/etc/ssh/sshd_config中,修改Port为升级前原本记录下来的ssh服务端口,即可不用开22的安全组就能直接访问(前提:之前已经开放了对应Port的安全组条目permit权限)

# 修改ssh端口
echo "Port xxxxx" >> /etc/ssh/sshd_config

# 允许root远程登录
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config

# 重启服务
systemctl restart sshd

在这里插入图片描述

在这里插入图片描述
使用远程登陆工具成功ssh登录云主机,试验结束。

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

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

相关文章

机器学习——线性回归(sklearn)

目录 一、认识线性回归 1. 介绍 2. 多元线性回归的基本原理(LinearRegression) 二、多重共线性 1. 介绍 2. 多重共线性详细解释 三、岭回归(解决多重共线性问题) 1. 模型推导 2. 选取最佳的正则化参数取值 四、Lasso&am…

(寄中寄) docker destop 的wsl问题——记一次在win10虚拟机的上的启动docker

🎪🎢🎡🎠🤡🦁 在win10上可能可以用docker,不过在win10上用docker有点不可能 wsl在windows中可能需要安装,不过wsl在windows安装有点不可能 应该是不用安装吧 可能需要重启 然后 …

移动运维APP项目建设:重塑运维服务新范式

在当今信息化高速发展的时代,信息系统已成为企业运营的核心支撑。为确保信息系统稳定、高效运行,运维团队面临着前所未有的挑战。传统运维方式受限于固定场所和设备,难以满足随时随地访问、快速响应等现代运维需求。因此,依托现有…

uniapp自定义navigationBar

最终效果: 一、关闭默认导航栏 pages.json文件中,对单个页面关闭 "navigationStyle": "custom" "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pag…

IP地址证如何实现HTTPS访问?(内网IP、公网IP)

IP地址证书(全称为IP地址的SSL/TLS证书)是实现通过IP地址进行HTTPS访问的关键。以下是实现这一目标的详细步骤: 一、选择证书颁发机构(CA) 1.选择支持IP证书的CA:并非所有证书颁发机构都提供为IP地址颁…

(计算机网络)网络层

目录 一.网络层提供哪种服务 二.两种服务的比较 三.ip协议 四.ip地址 五.ip地址的分类 六.子网掩码 七.路由器介绍 一.网络层提供哪种服务 1.ip地址--唯一的标识互联网上的某一台主机 2. 虚电路:虚拟的电路 二.两种服务的比较 ip数据报,不需要建…

航空航天构型管理

构型管理(CM)被定义为在产品的生命周期中应用的SE技术和管理规程。CM的五个原则是:CM计划与执行、配置识别、配置变更和差异控制、配置状态核算和配置验证。 广义上的构型管理规划和管理是有效实施配置管理的关键。特别是在不同项目之间的差异中,构型管理…

网络协议九 应用层 HTTPS

一 什么是 HTTPS 二 什么是 SSL/TLS 协议 ,TLS 是 SSL 升级后的名字 三. TLS 协议 工作在那一层 四 。OpenSSL 是 SSL/TLS协议的开源实现。 五。重点 HTTPS 的通讯过程 六 TLS 1.2 的连接过程 1. client hello 是浏览器发送给服务器的第一条信息, 是客户…

Ubuntu24.04安装 Mysql 并修改root密码 + 配置

参考文章:Ubuntu安装MySQL 一、下载并安装 MySQL 1、安装 mysql 服务端 yammiemy-pc >/opt $ sudo apt-get install mysql-server 2、安装 mysql 客户端 yammiemy-pc >/opt $ sudo apt-get install mysql-client 3、安装程序编译时连接的库 yammiemy-pc &…

【06】JVM是如何实现反射的?

为了保证框架的可扩展性,往往借助 Java 的反射机制,根据配置文件来加载不同的类。Spring 框架的依赖反转(IoC),便是依赖于反射机制。 反射调用的实现 这里主要是以【方法的反射调用】来进行剖析 public final class…

cocosUI多分辨率适配

需求:由于各个设备的分辨率和尺寸并不一样,所以需要一套适配系统去很好的针对不同的设备分辨率或尺寸进行适配,以给玩家一个很好的游戏体验。 目前的主流适配方案 目前,针对不同设备的适配,主流的方案通常包括以下几种…

OpenHarmony4.1上初体验rust

OpenHarmony4.1上初体验rust 前言一、准备工作二、初步调研三、初步尝试运行测试demo 四、尝试构建自己的hello world五、与C、C的交互总结 前言 由于后续可能要做rust基于OpenHarmony的开发工作,于是先开始一些调研性的工作,rust了解的内容可以参考该文…

雷达气象学(6)——径向速度图分析

文章目录 6.1 速度场分析基础6.1.1 速度图分析的基本方法6.1.2 练习:整层为均匀西风6.1.3 练习:风向随高度顺转 6.2 水平均匀风场的典型图像6.3 典型天气系统的判别6.3.1 锋面(切变线)系统6.3.1.1 冷锋(冷式切变线&…

苹果是如何成为一家以产品力驱动的公司

最近在看苹果的HIG(开发者指南)文档,深刻的体会到设计/产品能力对于用户的重要性,为什么苹果会有“设计可以改变一切”“产品即营销”这样的理念,而苹果也的的确确成为了少数以产品驱动的科技公司。 文档本身有六部分…

【数据结构详解】——归并排序(动图详解)

目录 🕒 1. 归并排序🕘 1.1 递归实现🕘 1.2 非递归实现 🕒 1. 归并排序 💡 算法思想:归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子…

蓝牙资讯|AirPods Pro 2推送最新开发者版固件,支持点头摇头控制Siri

苹果面向开发者推送了 AirPods Pro 2 的最新固件更新,版本号为 7A5266c。这并非一次常规更新是为即将在秋季发布的 iOS 18 系统做准备。 根据官方信息,新固件将为 AirPods Pro 2 引入一系列新功能,包括点头或摇头控制 Siri、增强嘈杂环境下…

Visual Studio Code 使用Git详细教程

再集成之前请确保已经安装Visual Studio Code 和Git,并且可以找到Git文件地址。如果找不到可以在系统环境变量里面看一眼之前的配置-需要找到Git下面的cmd目录,一会配置使用。 打开 Visual Studio Code找到设置根据图片指引 1.找到左下角设置按钮 2.展开…

支付宝沙箱模拟支付的实现

目录 1.登录支付宝开发平台 2.使用沙箱模拟支付 3.后端代码 4.前端代码 现在几乎所有应用或者网站都需要接入支付接口,因为一个产品最终目的还是要赚钱,所以我们今天就使用支付宝提供的模拟支付的接口来实现这个功能。 1.登录支付宝开发平台 支付宝…

deepin V23前瞻丨deepin V23与飞腾腾锐D3000完成适配,持续丰富deepin操作系统硬件生态

查看原文 近日,自主核心芯片研发飞腾公司宣布与deepin V23完成适配,包含飞腾新一代桌面CPU飞腾腾锐D3000、FT-2000/64、桌面芯片飞腾腾锐D2000等多款产品,为用户带来更智能、安全、稳定的使用体验。 飞腾腾锐D3000集成8个飞腾自主研发的新一…

微服务-分布式事务-seata

1. 事务 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列SQL操作,这些操作作为一个整体一起向系统提交,要么执行,要么都不执行 1.1 ACID事务的特点 原子性:针对同一事务,要么都完成,要么都不完成 一致…