麒麟 V10(ky10.x86_64)无网环境下 openssl - 3.2.2 与 openssh - 9.8p1 升级【最全教程】

目录

背景

安装包下载

上传解压安装包

安装zlib

安装OpenSSL

安装OpenSSH

验证


背景

近期,项目上线已进入倒计时阶段,然而在至关重要的安全检查环节中,却惊现现有的 OpenSSH 存在一系列令人担忧的漏洞:

OpenSSH 资源管理错误漏洞(CVE-2021-28041)
OpenSSH 信息泄露漏洞(CVE-2020-14145)
OpenSSH 输入验证错误漏洞(CVE-2020-12062)
OpenSSH 操作系统命令注入漏洞(CVE-2020-15778)
OpenSSH 安全漏洞(CVE-2023-51385)
OpenSSH 安全漏洞(CVE-2023-38408)
OpenSSH 安全漏洞(CVE-2021-41617)
OpenSSH 安全漏洞(CVE-2016-20012)

鉴于此严峻形势,按照相关的漏洞修复指引,当务之急是将 OpenSSH 升级到更为安全可靠的 9.8 版本,以确保项目能够顺利上线并在安全的环境中稳定运行。

安装包下载

  • 查看服务器系统版本
[root@localhost ~]# cat /etc/os-release
NAME="Kylin Linux Advanced Server"
VERSION="V10 (Sword)"
ID="kylin"
VERSION_ID="V10"
PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"
ANSI_COLOR="0;31"
  • 下载OpenSSH

openssh-9.8p1.tar.gzicon-default.png?t=O83Ahttps://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

  • 下载OpenSSL

openssl-3.2.2.tar.gzicon-default.png?t=O83Ahttps://github.com/openssl/openssl/releases/download/openssl-3.2.2/openssl-3.2.2.tar.gz

  • 下载zlib

zlib-1.3.1.tar.gzicon-default.png?t=O83Ahttps://zlib.net/fossils/zlib-1.3.1.tar.gz

上传解压安装包

将这3个安装包放置服务器 /opt 目录下,执行以下命令,解压安装包

tar -xf openssh-9.8p1.tar.gz
tar -xf openssl-3.2.2.tar.gz
tar -xf zlib-1.3.1.tar.gz

安装zlib

  • 编译安装
cd /opt/zlib-1.3.1
./configure --prefix=/usr/local/src/zlilb
make -j 4 && make test && make install
  • 验证
[root@localhost opt]# ldconfig -V
ldconfig (GNU libc) 2.28
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Andreas Jaeger.

安装OpenSSL

  • 编译安装
cd /opt/openssl-3.2.2
./config --prefix=/usr/local/src/openssl# 这里需要等待较长时间,勿慌
make -j 4 && make install
  • 创建openssl软连接
mv /usr/bin/openssl /usr/bin/openssl.bak2 
ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl 
ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3 
ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  • 验证
[root@localhost openssl-3.2.2]# openssl version -a
OpenSSL 3.2.2 4 Jun 2024 (Library: OpenSSL 3.2.2 4 Jun 2024)
built on: Tue Dec  3 13:10:47 2024 UTC
platform: linux-x86_64
options:  bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DNDEBUG
OPENSSLDIR: "/usr/local/src/openssl/ssl"
ENGINESDIR: "/usr/local/src/openssl/lib64/engines-3"
MODULESDIR: "/usr/local/src/openssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfff83203078bffff:0x209c01ab

安装OpenSSH

  • 编译安装
cd /opt/openssh-9.8p1
./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlilb
make -j 4 && make install
  • 覆盖旧的ssh文件
cp -rf /opt/openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd 
cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd 
cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh 
cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  • 设置ssh允许root用户登录、开启公钥认证登录、允许密码认证登录
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
  • 重启ssh
systemctl daemon-reload
/etc/init.d/sshd restart
/etc/init.d/sshd status
  • 查看ssh版本
[root@gxq-fwaqjc-4 openssh-9.8p1]# ssh -V
OpenSSH_9.8p1, OpenSSL 3.2.2 4 Jun 2024
  • 设置开机自启
chkconfig --add sshd

验证

最后,打开新窗口尝试是否能通过SSH连接服务器,千万不要关闭当前连接,验证新窗口能正常连接再关闭,不然操作失误,无法连接上服务器就难搞了。

该篇教程到此结束啦,亲测可用,希望也能解决你的问题!如果有帮助到你,点个赞呗!🎉🎉🎉

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

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

相关文章

高级架构二 Git基础到高级

一 Git仓库的基本概念和流程 什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何…

从excel数据导入到sqlsever遇到的问题

1、格式问题时间格式,excel中将日期列改为日期未生效,改完后,必须手动单击这个单元格才能生效,那不可能一个一个去双击。解决方案如下 2、导入之后表字段格式问题,数据类型的用navicat导入之后默认是nvarchar类型的&a…

FREERTOS二值信号量实验

代码: 主程序 #include "./SYSTEM/sys/sys.h" #include "./SYSTEM/usart/usart.h" #include "./SYSTEM/delay/delay.h" #include "./BSP/LED/led.h" #include "./BSP/LCD/lcd.h" #include "./BSP/KEY/key…

对于Oracle来说,土地管理是非核心域吗

思雨喵 2022-1-4 14:13 您在课上说,对于土地管理系统来说oracle,arcgis,java是非核心域,因为它们可有可无。我想请教对于oracle来说,土地管理好像也是可有可无,那么土地管理是非核心域吗 UMLChina潘加宇 …

工业齐套管理虚拟现实仿真模拟软件

工业齐套管理虚拟现实仿真模拟软件是与法国最大的汽车制造商合作开发的一款虚拟现实仿真模拟软件,借助身临其境的虚拟现实环境,无需停止生产线,即可模拟仓库和提货区域。 工业齐套管理虚拟现实仿真模拟软件不仅适用于汽车工业,安全…

状态模式的理解和实践

在软件开发中,我们经常遇到需要根据对象的不同状态执行不同行为的情况。如果直接将这些状态判断和行为逻辑写在同一个类中,会导致该类变得臃肿且难以维护。为了解决这个问题,状态模式(State Pattern)应运而生。状态模式…

【MySQL — 数据库基础】MySQL的安装与配置 & 数据库简单介绍

数据库基础 本节目标 掌握关系型数据库,数据库的作用掌握在Windows和Linux系统下安装MySQL数据库了解客户端工具的基本使用和SQL分类了解MySQL架构和存储引擎 1. 数据库的安装与配置 1.1 确认MYSQL版本 处理无法在 cmd 中使用 mysql 命令的情况&a…

Python从入门到入狱

Python是从入门到入狱?这个充满调侃意味的说法在程序员圈子里流传甚广。表面看,它似乎是在嘲笑这门语言从简单易学到深陷麻烦的巨大反差,实际上却隐藏着很多值得深思的问题。要解读这个话题,得从Python的特点、使用场景以及潜在风…

Linux获取文件属性

目录 stat函数 获取文件属性 获取文件权限 实现“head -n 文件名”命令的功能 编程实现“ls -l 文件名”功能 stat/fstat/lstat的区别? stat函数 int stat(const char *path, struct stat *buf); 功能:获取文件属性 参数: path&…

线程信号量 Linux环境 C语言实现

既可以解决多个同类共享资源的互斥问题&#xff0c;也可以解决简易的同步问题 头文件&#xff1a;#include <semaphore.h> 类型&#xff1a;sem_t 初始化&#xff1a;int sem_init(sem_t *sem, int pshared, unsigned int value); //程序中第一次对指定信号量调用p、v操…

如何使用k8s安装minio呢

话不多说&#xff0c;直接干货。 创建 minio-deployment.yaml apiVersion: apps/v1 kind: Deployment metadata:name: miniolabels:app: minio spec:replicas: 1selector:matchLabels:app: miniotemplate:metadata:labels:app: miniospec:containers:- name: minioimage: reg…

设计模式:17、单件模式(单例模式)

目录 0、定义 1、单件模式的一个角色 2、单件模式的UML类图 3、示例代码 0、定义 保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 1、单件模式的一个角色 单件类&#xff08;Singleton&#xff09;:单件类只可以创建出一个实例。 2、单件模式的UML类…

前端常用缓存技术深度剖析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

任务管理法宝:甘特图详解

在项目管理中&#xff0c;如何清晰、直观地展示项目的进度和任务分配&#xff1f; 甘特图作为一种经典的项目管理工具&#xff0c;提供了有效的解决方案。无论是团队合作还是个人项目管理&#xff0c;甘特图都能帮助你轻松追踪各项任务的进展。今天&#xff0c;我们将详细介绍…

leetcode 62.不同路径

1.题目要求: 2.解题思路: 利用动态规划去解此题 3.题目代码: class Solution { public:int uniquePaths(int m, int n) {//创建dp数组vector<vector<int>> dp;dp.resize(m);for(int i 0;i < dp.size();i){dp[i].resize(n);}//确定dp数组的含义//初始化for(i…

电子应用设计方案-38:智能语音系统方案设计

智能语音系统方案设计 一、引言 智能语音系统作为一种便捷、自然的人机交互方式&#xff0c;正逐渐在各个领域得到广泛应用。本方案旨在设计一个高效、准确、功能丰富的智能语音系统。 二、系统概述 1. 系统目标 - 实现高准确率的语音识别和自然流畅的语音合成。 - 支持多种语…

UE5 C++ 不规则按钮识别,复选框不规则识别 UPIrregularWidgets

插件名称&#xff1a;UPIrregularWidgets 插件包含以下功能 你可以点击任何图片&#xff0c;而不仅限于矩形图片。 UPButton、UPCheckbox 基于原始的 Button、Checkbox 扩展。 复选框增加了不规则图像识别功能&#xff0c;复选框增加了悬停事件。 欢迎来到我的博客 记录学习过…

第32天:安全开发-JavaEE应用Servlet路由技术JDBCMybatis数据库生命周期

时间轴&#xff1a; 32天主要学习内容&#xff1a; 1、JavaEE-HTTP-Servlet技术 2、JavaEE-数据库-JDBC&Mybatis java技术使用历史&#xff08;2023 &#xff09;&#xff1a; JavaEE-HTTP-Servlet&路由&周期: java学习范围&#xff1a; 3、Java: 功能:数据…

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器(模块化编写)

基于ZYNQ-7000系列的FPGA学习笔记7——按键控制蜂鸣器&#xff08;模块化编写&#xff09; 1. 实验要求2. 功能分析3. 模块设计4. 波形图4.1 按键消抖模块4.2 按键控制蜂鸣器模块 5.代码编写5.1 rtl代码5.2 测试代码 6. 代码仿真7. 添加约束文件并分析综合 在上期的内容中&…

k8s,声明式API对象理解

命令式API 比如&#xff1a; 先kubectl create&#xff0c;再replace的操作&#xff0c;我们称为命令式配置文件操作 kubectl replace的执行过程&#xff0c;是使用新的YAML文件中的API对象&#xff0c;替换原有的API对象&#xff1b;而kubectl apply&#xff0c;则是执行了一…