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

Linux运维总结:Centos7.6之OpenSSH7.4升级版本至9.3

一、环境信息

操作系统:Centos7.6.1810 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips

注意:升级后由于加密算法的区别,低版本的SSH工具可能无法连接,建议改用Xshell7或SecureCRT9.0以上版本。

二、注意事项

1、 检查防火墙或selinux是否关闭。
2、 新前一定要多开1个或1个以上ssh终端,一旦更新失败当前shell终端是无法操作的,也就无法进行版本回退。
3、 升级前一定要对ssh进行备份,避免更新失败时能回滚。
4、升级前一定要提前在测试环境验证,运行一段时间,确认没有问题才可在生产环境进行更新操作。
5、对于生产环境主机数量比较多时,建议先在1台或几台服务器上更新,运行一段时间,确认没有问题再执行批量更新操作。

三、升级步骤

3.1、准备工作
1、安装依赖
yum install -y gcc gcc-c++ perl perl-IPC-Cmd pam pam-devel
2、下载tar包并解压
cd /usr/local/src
wget https://www.openssl.org/source/openssl-3.1.0.tar.gz --no-check-certificate
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz 
wget https://www.zlib.net/fossils/zlib-1.2.13.tar.gz
tar axf openssh-9.3p1.tar.gz && tar axf openssl-3.1.0.tar.gz && tar axf zlib-1.2.13.tar.gz
3.2、备份文件
1、备份openssl
mv /usr/bin/openssl /usr/bin/openssl.old
2、备份openssh
mv /etc/ssh /etc/ssh.bak
mkdir /usr/bin/bak
\cp -arpf /usr/bin/{cp,sftp,ssh,ssh-add,ssh-agent,ssh-keygen,ssh-keyscan} /usr/bin/bak/
\cp -arpf /usr/sbin/sshd /usr/sbin/sshd.bak
\cp -arpf /etc/sysconfig/sshd /etc/sysconfig/sshd.bak
\cp -arpf /etc/pam.d/sshd /etc/pam.d/sshd.bak

说明:如果cp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan等二进制文件是软连接,这里就不需要备份,请直接删除这些软连接,后续如果还原的时候请从这些文件的源路径里拷贝即可。当前环境不是软连接,所以对这些二进制文件进行备份。

3.3、编译安装zlib
cd zlib-1.2.13
./configure --prefix=/usr/local/zlib-1.2.13 && make -j 4 && make install
3.4、编译安装openssl
1、编译安装
cd openssl-3.1.0
./config --prefix=/usr/local/openssl-3.1.0
make -j 4 && make install
2、编辑ld.so.conf文件
echo '/usr/local/openssl-3.1.0/lib64' >> /etc/ld.so.conf
ldconfig -v
3、创建操作系统软链接
ln -s /usr/local/openssl-3.1.0/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl-3.1.0/include/openssl /usr/include/openssl
ll -s /usr/bin/openssl
ll -s /usr/include/openssl
4、检查Openssl版本
openssl version
OpenSSL 3.1.0 14 Mar 2023 (Library: OpenSSL 3.1.0 14 Mar 2023)
3.5、编译安装openssh
1、编译安装
cd openssh-9.3p1
./configure --prefix=/usr/local/openssh-9.3p1 --sysconfdir=/etc/ssh --with-pam \
--with-ssl-dir=/usr/local/openssl-3.1.0 --with-zlib=/usr/local/zlib-1.2.13 --without-hardening
make && make install
2、替换新版本openssh相关命令
\cp -arpf /usr/local/openssh-9.3p1/bin/scp /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/sftp /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/ssh /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/ssh-add /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/ssh-agent /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keygen /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/bin/ssh-keyscan /usr/bin/
\cp -arpf /usr/local/openssh-9.3p1/sbin/sshd /usr/sbin/sshd
3、拷贝启动脚本
\cp -a contrib/redhat/sshd.init /etc/init.d/sshd
\cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak
4、修改配置文件
vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
UsePAM no
UseDNS no
5、设置开机启动,并验证版本
systemctl daemon-reload
systemctl enable sshd.socket
sshd -t
systemctl restart sshd
ssh -V
OpenSSH_9.3p1, OpenSSL 3.1.0 14 Mar 2023

注意:在configure openssh时,有设置参数 –with-pam,在此之后登录服务器时,会发生登陆失败的问题。

解决方法一如下:

vi /etc/ssh/sshd_config
UsePAM no

解决方法二如下:

# 备份原文件/etc/pam.d/sshd,将以下内容覆盖写入/etc/pam.d/sshd
vim /etc/pam.d/sshd
#%PAM-1.0
auth       substack     password-auth
auth       include      postlogin
account    required     pam_sepermit.so
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    optional     pam_motd.so
session    include      password-auth
session    include      postlogin
六、版本回退

回滚前:

[root@localhost ~]# ssh -V
OpenSSH_9.3p1, OpenSSL 3.1.0 14 Mar 2023
2、回滚openssh
2.1、恢复/etc/ssh目录
rm -rf /etc/ssh 
mv /etc/ssh.bak /etc/ssh 
2.2、恢复cp、sftp、ssh、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan命令
\cp -arpf /usr/bin/bak/cp /usr/bin/cp
\cp -arpf /usr/bin/bak/sftp /usr/bin/sftp 
\cp -arpf /usr/bin/bak/ssh /usr/bin/ssh 
\cp -arpf /usr/bin/bak/ssh-add /usr/bin/ssh-add 
\cp -arpf /usr/bin/bak/ssh-agent /usr/bin/ssh-agent 
\cp -arpf /usr/bin/bak/ssh-keygen /usr/bin/ssh-keygen 
\cp -arpf /usr/bin/bak/ssh-keyscan /usr/bin/ssh-keyscan 
rm -rf /usr/bin/bak
2.3、恢复sshd命令
\mv /usr/sbin/sshd.bak /usr/sbin/sshd 
\mv /etc/sysconfig/sshd.bak /etc/sysconfig/sshd 
2.4、重启sshd服务
systemctl daemon-reload
systemctl restart sshd

回滚后:

[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

参考:https://blog.csdn.net/m0_37814112/article/details/131632432

相关文章:

Linux运维总结:Centos7.6之OpenSSH7.4升级版本至9.3

一、环境信息 操作系统:Centos7.6.1810 OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 注意:升级后由于加密算法的区别,低版本的SSH工具可能无法连接,建议改用Xshell7或SecureCRT9.0以上版本。 二、注意事项 1、 检查防火墙或selinux是否…...

SD-WAN能解决企业网络的哪些问题?

SD-WAN技术的崛起为企业网络带来了全新的解决方案。在数字化转型、云计算、远程办公和5G等领域,SD-WAN技术展现出强劲的市场趋势。那么,SD-WAN究竟能够解决企业网络中的哪些难题呢? 提升网络带宽利用率 传统网络在连接分支机构时,…...

Python实战:Python集合的常见操作

Python集合(set)是一种无序且元素唯一的容器,它是Python中一种基本的数据结构。本文将详细介绍Python集合的常见操作,包括创建集合、添加和删除元素、集合运算、集合推导式等。 1. 创建集合 Python集合可以通过多种方式创建&…...

Linux: cloud: network: tap tx 丢包一例,vCPU的运行受到主机CPU的占用影响

https://access.redhat.com/documentation/en-us/red_hat_openstack_platform/10/html/ovs-dpdk_end_to_end_troubleshooting_guide/high_packet_loss_in_the_tx_queue_of_the_instance_s_tap_interface 这个里面有一个丢包的例子是说,如果tx-queue的大小不够大&am…...

揭秘数据之美:利用 Bokeh 轻松构建实时、动态的数据可视化项目

1、引言 想让你的数据跃然 “屏” 上?厌倦了静态图表的平淡无奇?那么,今天就让我们一起探索 Python 世界中的瑰宝 ——Bokeh 库。这款强大的可视化工具以其流畅的交互性和实时更新能力,让你的数据呈现如电影般生动立体&#xff0…...

性能测试场景分析并设计?超细案例讲解

前言 性能测试场景,其实和功能测试没什么区别,只是侧重点不同。 我们在功能测试中经常用到的等价类边界值等分析和设计测试case的方法,目的是为了尽可能的覆盖业务场景,避免遗漏导致的功能逻辑缺失或者未达到预期。 而在性能测试…...

python面向对象练习一

假设我们正在开发一个学生管理系统,我们需要创建一个Student类来表示学生对象。 每个学生都有学号、姓名和年龄属性。我们还希望能够打印学生的信息,并在删除学生对象时输出一条提示消息。 要求使用__str__()管理学生信息的打印 要求使用__del__()管理删…...

【Linux-tar/gzip/zip】

Linux-tar/gzip/zip ■ tar■ gzip■ zip■ unzip解压缩 ■ tar 基本语法: tar [选项] 压缩后的压缩包 要压缩的文件 选项说明描述-cf :对文件或文件夹进行打包-v :显示压缩的进度- z :使用gzip压缩工具把打包后的文件进行压缩为.gz-j :使用bzip2压缩工具把打包后…...

第一代高通S7和S7 Pro音频平台:超旗舰性能,全面革新音频体验

以下文章来源于高通中国 如今,音频内容与形式日渐丰富,可满足人们放松心情、提升自我、获取资讯等需求。得益于手机、手表、耳机、车载音箱等智能设备的广泛应用,音频内容可以更快速触达用户。从《音频产品使用现状调研报告2023》中发现&…...

el-menu + el-badge 菜单加红点标识el-badge

el-menu el-badge 菜单加红点标识el-badge 一、el-menu组件menu/index.vuemenu/submenu.vue 二、获取/更新菜单红点标识 main.js引入全局组件/mixins全局混入 el-menu封装 一、el-menu组件 menu/index.vue 重点:定义 ref"menu",切换路由时…...

python: inspect模块各函数的用法

python: inspect模块各函数的用法 inspect模块也被称为 检查现场对象。这里的重点在于“现场”二字,也就是当前运行的状态。 inspect模块提供了一些函数来了解现场对象,包括 模块、类、实例、函数和方法。 inspect函数主要用于以下四个方面 对是否是模…...

优化代码性能:C#中轻松测量执行时间

概述:本文介绍了在C#程序开发中如何利用自定义扩展方法测量代码执行时间。通过使用简单的Action委托,开发者可以轻松获取代码块的执行时间,帮助优化性能、验证算法效率以及监控系统性能。这种通用方法提供了一种便捷而有效的方式,…...

I2C学习总结

i2c概述 I2C(Inter-Intergreted Circuit) 是一种串行通信协议,用于集成电路之间完成数据传输,i2c用广泛用以各种领域,包括电子设备、嵌入式系统、工业自动化等; i2c仅仅只是一个数据传输的协议&#xff0c…...

libcudart.so libcuda.so之间的关系

libcudart.so 和 libcuda.so 都是 NVIDIA CUDA 库的一部分,它们在 CUDA 平台上扮演不同的角色,但它们之间也存在一些关联。 libcudart.so: libcudart.so 是 CUDA Runtime 库的一部分,它包含了一系列的运行时函数和工具,用于管理和…...

STM32基本定时功能

1、定时器就是计数器。 2、怎么计数? 3、我们需要有一恒定频率的方波信号,再加上一个寄存器。 4、比如每来一个上升沿信号,寄存器值加1,就可以完成计数。 5、假设方波频率是100Hz,也就是1秒100个脉冲。…...

Linux学习:权限

目录 1. shell命令的工作原理与存在意义1.1 shell命令解释器存在的意义1.2 shell解释器的工作原理 2. Linux操作系统:用户2.1 什么是用户2.2 用户的切换操作2.3 用户权限划分的意义 3. Linux中权限的种类和意义3.1 什么是权限3.2 sudo指令与短暂提权 4. 文件类型与文…...

汉诺塔问题代码写法的详细解析

汉诺塔游戏规则: 规则: 汉诺塔问题是一个经典的问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着…...

Python爬虫入门

什么是爬虫 爬虫就是程序,一个能获取互联网上的资源(文字、图片、音视频)数据的程序。 不用爬⾍, 打开浏览器, 输⼊百度的⽹址,就能在浏览器上看到百度的内容了。那换成爬⾍呢? 道理是⼀样的。只不过,是⽤…...

【数据结构学习笔记】选择排序

【数据结构学习笔记】选择排序 参考电子书:排序算法精讲 算法原理 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元…...

小资金适合做伦敦金的投资吗?

在回答这个问题之前,我们首先需要了解伦敦金是什么。伦敦金,也称为伦敦金市场交易的黄金,是一种国际性的金融交易产品,其价格受全球政治、经济、货币政策、供求关系等多种因素影响,波动性较大。因此,投资伦…...

关联规则挖掘在Calabi-Yau流形Hodge数分析中的应用与复现

1. 项目概述:当数据挖掘遇见高维几何在理论物理和代数几何的交叉领域,Calabi-Yau流形一直扮演着核心角色。这些具有特殊拓扑结构的空间,不仅是弦理论中额外维度紧化的关键候选者,其本身丰富的数学性质也吸引着无数研究者。然而&am…...

Unity Visual Scripting不是拖拽玩具:中阶开发者的编程范式重构指南

1. 为什么Unity官方Visual Scripting不是“拖拽完就能跑”的玩具,而是一套需要重新理解的编程范式很多人第一次点开Unity的Visual Scripting(VS)面板时,看到那些五颜六色的节点和丝滑的连线,下意识觉得:“这…...

Keil µVision链接器错误204解决方案

1. 问题现象与背景解析最近在使用Keil Vision进行嵌入式开发时,不少工程师遇到了一个令人头疼的链接器错误。具体表现为编译时出现"FATAL ERROR 204: INVALID KEYWORD"的致命错误,错误位置指向链接器控制文件中的特定行。这个问题在C166和C51两…...

特定任务需求场景下的过约束并联机构构型设计与控制方法【附代码】

✨ 长期致力于曲面加工、构型综合、运动学和动力学建模、性能评价、多目标优化、滑模控制、鲁棒控制、视觉传感技术研究工作,擅长数据搜集与处理、建模仿真、程序编写、仿真设计。 ✅ 专业定制毕设、代码 ✅ 如需沟通交流,点击《获取方式》 (…...

XZ1018,100V,40A,NMOS 封装:TO252

封装&#xff1a;TO252类型&#xff1a;NVDS&#xff1a;100V VGS&#xff1a; 20V ID&#xff1a;40ARDS(ON)&#xff1a;10V <14mΩRDS(ON)&#xff1a;4.5V <19mΩ型号&#xff1a; XZ1018 封装&#xff1a;TO252类型&#xf…...

Linux平台终极Jellyfin客户端:如何用Tsukimi打造专业级媒体中心体验?

Linux平台终极Jellyfin客户端&#xff1a;如何用Tsukimi打造专业级媒体中心体验&#xff1f; 【免费下载链接】tsukimi A simple third-party Jellyfin client for Linux 项目地址: https://gitcode.com/gh_mirrors/ts/tsukimi 你是否厌倦了网页版Jellyfin的笨重体验&am…...

5分钟掌握AutoClicker:Windows鼠标点击自动化的终极指南

5分钟掌握AutoClicker&#xff1a;Windows鼠标点击自动化的终极指南 【免费下载链接】AutoClicker AutoClicker is a useful simple tool for automating mouse clicks. 项目地址: https://gitcode.com/gh_mirrors/au/AutoClicker AutoClicker是一款专为Windows设计的鼠…...

智能知识学习平台

智能知识学习平台项目简介技术架构&#xff1a;问答驱动的开发模式前端架构后端架构核心功能&#xff1a;问答式交互贯穿始终1. 自定义构建知识库2.文档查看3.智能问答&#xff1a;知识触手可及4. 智能题目生成&#xff1a;严格遵循文档内容项目亮点用问答驱动的方式构建智慧学…...

清华大学学位论文LaTeX模板:30分钟快速排版终极指南

清华大学学位论文LaTeX模板&#xff1a;30分钟快速排版终极指南 【免费下载链接】thuthesis LaTeX Thesis Template for Tsinghua University 项目地址: https://gitcode.com/gh_mirrors/th/thuthesis 还在为论文格式烦恼吗&#xff1f;清华大学官方LaTeX模板thuthesis让…...

在github上快速接入taotoken大模型api的python调用教程

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 在GitHub上快速接入Taotoken大模型API的Python调用教程 对于希望快速集成大模型能力的开发者而言&#xff0c;找到一个统一、便捷的…...