CentOS7 OpenSSL升级到OpenSSH9.5p1

原文链接:
CentOS7 OpenSSL升级1.1.1w;OpenSSH 升级 9.5p1 保姆级教程
openssl从3.1.0升级到3.1.1遇到的问题

注意操作时需要联网请参考如下链接

内网服务器联网安装依赖参见我的另一篇文章

一、 前言

OpenSSH 的加密功能需要用到OpenSSL,所以在升级OpenSSH的时候,大部分情况是需要将OpenSSL一起升级的。

这里我们可以先升级OpenSSL到OpenSSL 1.1.1w 11 Sep 2023
然后再升级OpenSSH 到OpenSSH_9.5p1, OpenSSL 1.1.1w 11 Sep 2023

当然也可以从第三步开始操作,如果你的OpenSSL 版本太低会遇到报错 configure: error: OpenSSL >= 1.1.1 required,此时你需要跳到文末升级OpenSSL 再返回继续操作

1.1 注意点
在升级之前先将需要的包上传到服务器,以免升级失败后导致上传文件失败。(这里我用的sftp上传,sftp的核心也需要用到SSH),并安装telnet-server服务保证SSH升级失败后,可以继续远程连接。

需要有初始yum源,要不然安装这两个服务众多的依赖包将会是梦魇。

原始版本信息如下。

二、升级OpenSSL

2.1 安装依赖

yum -y install gcc*

2.2备份、卸载原有OpenSSL
1、 查找openssl 相关目录,然后备份

[root@vm206 etc]# whereis openssl

openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz

[root@vm206 etc]# mv /usr/bin/openssl  /usr/bin/openssl.old

[root@vm206 etc]# mv /usr/lib64/openssl /usr/lib64/openssl.old

2、 卸载 openssl (这一步看个人需要,我有洁癖所以我卸载了)

yum remove openssl

2.3安装openssl

tar -xzvf openssl-1.1.1w.tar.gz

cd openssl-1.1.1w/

./config --prefix=/usr

make && make install

这里我的目录选择了/usr 是因为系统最初始的openssl的目录就是/usr 这样可以省去的软连接、更新链接库的问题

2.4验证

[root@vm206 openssl-1.1.1w]# whereis openssl

openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1

[root@vm206 openssl-1.1.1w]# openssl  version

OpenSSL 1.1.1w  11 Sep 2023

可以看到我这边的目录和老版本的openssl的目录保持了一致,唯一不同的是多了一个/usr/include/openssl 库目录
如果不加prefix ,openssl的默认路径如下

Bin: /usr/local/bin/openssl

include库 :/usr/local/include/openssl

lib库:/usr/local/lib64/

engine库:/usr/lib64/openssl/engines

三、 升级OpenSSH

内网中yum需要代理,请看本文开头的蓝色加粗超链接

3.1 安装telnet-server

yum install telnet* -y

systemctl  start telnet.socket

systemctl enable telnet.socket

mv /etc/securetty /etc/securetty.bak

临时关闭安全登录,否则无法进行远程telnet连接

有防火墙记得关闭防火墙,并关闭SELinux

防火墙:

 firewall-cmd --state

关闭防火墙:

systemctl stop firewalld.service

测试telnet远程登录,telnet登录成功才进行接下来的操作,防止sshd服务被搞坏了远程连不上服务器

telnet 172.16.1.182
Type `help' to learn how to use Xshell prompt.
[D:\~]$ telnet 172.16.1.182


Connecting to 172.16.1.182:23...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Kernel 5.15.1-1.el7.elrepo.x86_64 on an x86_64
0003 login: root
Password: 
Last login: Wed Dec 13 09:46:44 from 172.10.110.247
[root@0003 ~]# 

如上,已经可以通过telnet远程连接了,这下可以放心大胆的操作了。

接下来的操作用telnet远程,不要用ssh远程,防止升级OpenSSH9.5p1时原ssh文件卸载不干净

3.2 安装依赖包

yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools

3.3 备份

在这里插入图片描述

通过whereis ssh sshd找出bin文件、源文件,然后备份。 man手册不需要备份。

mv /etc/ssh /etc/ssh.bak

mv /usr/bin/ssh /usr/bin/ssh.bak

mv /usr/sbin/sshd /usr/sbin/sshd.bak

mv /etc/pam.d/sshd  /etc/pam.d/sshd.old

备份pam验证文件

3.4卸载旧版OpenSSH

yum remove openssh

3.5安装新版OpenSSH

tar -xzvf openssh-9.5p1.tar.gz

cd openssh-9.5p1

./configure --prefix=/usr --sysconfdir=/etc/ssh  --with-pam   --with-ssl-dir=/usr/local/lib64/

其中–prefix --sysconfdir 这两个参数我仍然采用了系统之前的默认路径,避免路径混乱导致的问题
如果报错 configure: error: OpenSSL >= 1.1.1 required请看文末的问题

make

make install

cd /etc/pam.d/

mv sshd.old sshd

恢复ssh pam认证

cd openssh-9.5p1/

cp contrib/redhat/sshd.init /etc/init.d/sshd

chkconfig --add sshd

systemctl  enable sshd

systemctl  start sshd

可以看到,已经升级成功

[root@0003 ~]# ssh -V
OpenSSH_9.5p1, OpenSSL 3.1.0 14 Mar 2023
[root@0003 ~]# 

3.6修改/etc/ssh/sshd_config 配置文件
文件修改如下,然后重启sshd服务即可在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

登录成功界面

在这里插入图片描述

问题

configure: error: OpenSSL >= 1.1.1 required

原因

原因是,我上一次修复BUG时,把openssl版本直接从1.1.1t升级到了3.1.0,需要的lib类库也需要从libssl.so.1.1更新到libssl.so.3,这一次同样是3版本,我以为不用更新了,所以出现了上面的错误;

解决办法

进入安装好的/usr/local/openssl311/lib64目录下(openssl311是自定义的,选择自己的安装目录),将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下,选择覆盖;

升级过程
下载:

内网中wget需要代理,请看本文开头的蓝色加粗超链接

wget https://www.openssl.org/source/openssl-3.1.0.tar.gz --no-check-certificate

解压:

tar -xzvf openssl-3.1.0.tar.gz

进入解压后目录:

cd openssl-3.1.0

配置安装目录:

./config --prefix=/usr/local/openssl310

注意–prefix=/usr/local/openssl311,如果–prefix=/usr/local/openssl覆盖安装之前版本会失败,我已踩坑
这里安装目录和之前目录保持不同,安装完成再去删除之前的 /usr/local/openssl目录,不删除就当废弃文件放在那也行

我在升级另一台服务器又遇到这个开头的错Can’t locate IPC/Cmd.pm in
参考:
编译升级OpenSSL报错:Can‘t locate IPC/Cmd.pm
解决一个问题----cpan配置(proxy,mirror)
cpan好像是一个脚本工具,类似于shell
即先安装cpan,初始化cpan配置时选手动配置,一直回车使用默认配置,再重新进入cpan命令行为其配置代理
再用cpan安装IPC/Cmd.pm

编译安装:

make && make install

进入安装好的/usr/local/openssl311/lib64目录下(openssl311是自定义的,选择自己的安装目录),

cd /usr/local/openssl310/lib64

将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下,选择覆盖;

cp libssl.so.3  /usr/lib64
cp libcrypto.so.3  /usr/lib64

本地查看是否成功:

/usr/local/openssl310/bin/openssl version -a

出现问题,解决后可正常显示新版本,或无问题,继续下一步
软链接:进入/usr/bin目录,查询openssl的软链接,如果指定的是旧版本,使用命令取消旧软链接

unlink /usr/bin/openssl

创建新软链接:

ln -s /usr/local/openssl310/bin/openssl /usr/bin/openssl

刷新命令库:

ldconfig

在任一目录直接验证,可查看到新版本

openssl version -a
[root@0003 ~]# openssl version -a
OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)
built on: Tue Dec 12 08:24:05 2023 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/openssl310/ssl"
ENGINESDIR: "/usr/local/openssl310/lib64/engines-3"
MODULESDIR: "/usr/local/openssl310/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0xfffa32035f8bffff:0x800d19e4fbb
[root@0003 ~]# 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在服务器上配置jupyter notebook便于本地访问

文章目录 需求配置1. 安装jupyter2. 生成配置文件3. 设置登录密码并生成秘钥a. 打开服务器的终端b. 设置密码 4. 修改配置文件a. 进入配置文件所在的文件夹b. 编辑配置文件jupyter_notebook_config.pyc. 保存文件 5. 在服务器上生成jupyter访问地址 关注公众号:『 …

别整那么复杂,一二三就行了!Windows下vscode运行c++代码

这里写自定义目录标题 别整那么复杂,三步就行!Windows下vscode运行c代码下载VScode:https://code.visualstudio.com/Download#安装四个插件下载mingw-64:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/大功告成&am…

ubuntu 自动安装 MKL Intel fortran 编译器 ifort 及完美平替

首先据不完全观察,gfortran 与 openblas是 intel fortran 编译器 ifotr和mkl的非常优秀的平替,openblas连函数名都跟mkl一样,加了一个下划线。 1, 概况 https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-too…

螺旋矩阵算法(leetcode第885题)

题目描述: 在 rows x cols 的网格上,你从单元格 (rStart, cStart) 面朝东面开始。网格的西北角位于第一行第一列,网格的东南角位于最后一行最后一列。你需要以顺时针按螺旋状行走,访问此网格中的每个位置。每当移动到网格的边界之…

Fractal-Streets

title: Fractal Streets date: 2023-12-13 14:48:45 tags: 分形 categories: 算法进阶指南 题目大意 将原来的城市复制一遍放在原城市的上方,将原城市顺时针90放在原城市的左上方,将逆时针90后的城市放在原城市的左边,然后用道路将四部分链接…

python和pygame实现烟花特效

python和pygame实现烟花特效 新年来临之际,来一个欢庆新年烟花祝贺,需要安装使用第三方库pygame,关于Python中pygame游戏模块的安装使用可见 https://blog.csdn.net/cnds123/article/details/119514520 效果图及源码 先看效果图&#xff1a…

spingboot项目实战之若依框架创建新模块

前言 目前的脚手架系统很多,比较早接触诺依框架,以若依框架为参考如何创建新模块 步骤 1. 下载诺依框架,依照参考说明一步步,能做到系统运行起来。 2. 准备好mysql文件,创建新数据库表 3. 数据库管理工具navicat…

基于VGG-16+Android+Python的智能车辆驾驶行为分析—深度学习算法应用(含全部工程源码)+数据集+模型(四)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建3. 模型训练及保存4. 模型生成 系统测试1. 训练准确率2. 测试效果3. 模型应用 相关其它博客工程源代码下载其它资料下载 前言 本项目采用VGG-16网络模型,使用Kaggle开源数据集…

Docker | Docker+Nginx部署前端项目

= ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Docker系列 ✨特色专栏: MySQL学习 🥭本文内容:Docker | Docker+Nginx部署前端项目 📚个人知识库: [Leo知识库]https://gaoziman.gi…

工业SCADA组态软件:数据采集与过程监控

随着工业4.0时代的到来,工业物联网平台在工业领域的应用越来越广泛。SCADA(Supervisory Control and Data Acquisition,监控和数据采集)组态软件作为工业物联网的重要组成部分,发挥着越来越重要的作用。本文将详细介绍…

初级数据结构(四)——队列

文中代码源文件已上传&#xff1a;数据结构源码 <-上一篇 初级数据结构&#xff08;三&#xff09;——栈 | NULL 下一篇-> 本篇是属于上一篇的补充篇&#xff0c;因为队列和栈的属性特别类似&#xff0c;很多细节部分可以查看上一篇或者初级据结构的第二…

DPDK是什么?DPDK网卡更有优势吗?

近年来&#xff0c;随着数字化的推进&#xff0c;上云成为企业数字化建设的重要指标&#xff0c;用云程度持续深入。可以说&#xff0c;云时代已经来临。 应云而生的DPDK 云时代的一个典型特征&#xff0c;是数据的高速增长。据华为GIV数据&#xff0c;预计2025年全球数据量将…

Java毕业设计—vue+SpringBoot图书借阅管理系统

图书管理系统 1. 开发目的 实现图书的智能化、信息化和简单化&#xff1b;实现图书信息的增加、删除、修改、查找、借阅、还书、收藏的显示操作及实时数据库的提交和更改和对普通用户的增、删、改、查&#xff1b;提高图书管理员工作信息报送及反馈的工作效率&#xff0c;减轻…

Visual Studio调试技巧合集

Visual Studio调试技巧合集 1 如何同一个项目运行不同main文件&#xff1f; 1 如何同一个项目运行不同main文件&#xff1f; &#xff08;1&#xff09;移动鼠标到需要关掉调试的文件&#xff0c;点击右键属性–常规–从生成中排除–是–确定&#xff0c;即显示“-”号排除&am…

电线电缆行业生产管理MES系统解决方案

电线电缆行业生产管理mes系统核心功能 基础数据管理&#xff1a;对基础数据进行统一管理&#xff0c;包括组织架构、原材料数据、设备数据、报工数据、检验数据、员工数据等工艺与BOM管理&#xff1a;对工艺标准进行统一管理&#xff0c;包括工艺的版本管理、关联型号管理&…

Tair(4):Tair原理架构

一个Tair集群主要包括3个必选模块&#xff1a;ConfigServer、Dataserver和Client 通常情况下&#xff0c;一个 Tair 集群中包含2台 Configserver 及多台 DataServer。其中两台 Configserver 互为主备。通过和 Dataserver 之间的心跳检测获取集群中存活可用的 Dataserver&#…

Python 从入门到精通 学习笔记 Day04

Python 从入门到精通 第四天 今日目标 数据类型-又见str、数据类型-又见list 列表切片&排序&反转&循环、字典 数据类型 - 又见str 字符串定义 字符串是一个有序的字符的集合&#xff0c;用于在计算机里存储和表示文本信息 创建 a "Hello ,my name is Ha…

AUTOSAR_SWS_LogAndTrace文档中文翻译

** 1 Introduction and functional overview ** 本规范规定了AUTOSAR自适应平台日志和跟踪的功能。 日志和跟踪为AA提供接口&#xff0c;以便将日志信息转发到通信总线、控制台或文件系统。 提供的每个日志记录信息都有自己的严重性级别。对于每个严重级别&#xff0c;都提供…

【MySQL】触发器trigger / 事件

文章目录 1. 触发器 trigger1.1 触发器命名1.2 new和old关键字1.3 案例&#xff1a;insert 触发器1.4 练习&#xff1a;delete 触发器1.5 查看触发器 show triggers1.6 使用触发器记录对表的操作 2 事件2.1 打开 / 关闭事件调度器2.2 创建事件 create event2.3 查看&#xff0c…

【Linux服务器Java环境搭建】09 在CentOS系统中安装和配置clickhouse数据库

一、安装环境 CentOS7 二、官网安装参考文档 官网安装参考文档 不同系统请参考如下建议 从RPM软件包安装&#xff1a; 建议在CentOS、RedHat和所有其他基于rpm的Linux发行版上使用官方预编译的rpm软件包从DEB软件包安装&#xff1a; 建议在Debian或Ubuntu上使用官方预编译…