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

news2024/12/25 23:40:45

一、环境信息

操作系统: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 http://www.zlib.net/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

5、修改配置文件

vi /etc/ssh/sshd_config
PermitRootLogin yes
PasswordAuthentication yes
UsePAM no
UseDNS no

6、设置开机启动,并验证版本

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

回滚操作:

1、回滚openssl

rm -f /usr/bin/openssl 
mv /usr/bin/openssl.old /usr/bin/openssl 
openssl version
OpenSSL 1.0.2k-fips  26 Jan 2017

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

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:Linux运维实战总结

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

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

相关文章

2023最新版 Navicat 16.2.3安装和试用教程详解:轻松掌握最新版本的数据库管理工具连接Redis

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

kettle开发-Day40-AI分流之case/switch

前言: 前面我们讲到了很多关于数据流的AI方面的介绍,包括自定义组件和算力提升这块的,今天我们来学习一个关于kettle数据分流处理非常重要的组件Switch / Case 。当我们的数据来源于类似日志、csv文件等半结构化数据时,我们需要在…

计算机网络 day6

目录 arp协议 arp病毒\欺骗 arp病毒的运行原理 arp病毒产生的后果: 解决方法: ICMP协议 ICMP用在哪里? ICMP协议数据的封装过程 ​编辑 为什么icmp协议封装好数据后,还要加一个ip包头,再使用ip协议再次进…

【UE4 C++】08-生成抛射物来模拟攻击效果

步骤 新建一个C类,父类为Actor,命名为“ASMagicProjectile” 在“ASMagicProjectile.h”中添加如下代码: 在“ASMagicProjectile.cpp”中添加如下代码: 编译后在虚幻编辑器中新建一个蓝图,选择父类为我们刚创建的C类…

vscode插件开发之终端那些事儿

在开发vscode插件的时候,好几个设计都需要集成终端。 查资料后发现vsocd为开发者提供了丰富的终端API。 结合我自己的需求来展开终端的那些事儿吧: 从treeview中点击触发打开一个终端 无关的代码省略: vscode.window.createTerminal({name…

python+selenium进行cnblog的自动化登录测试

Web登录测试是很常见的测试,手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文就基于pythonselenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动化登录测试,可提供点参考!下面就包括测试代…

有没有好的PC端和移动端都能用的便签app?

生活在快节奏的社会环境中,我们每天都要面对大量的事务。为了更好地管理任务和时间,便签app成为了越来越多人选择的工具。因为,便签app不仅能帮助我们记录并安排日常事务,还可以设置提醒事项,准时发送提醒通知告诉我们…

数学建模——插值算法

概念:数模比赛中,常常需要根据有已知的函数点进行数、模型处理和分析,而有时候现有的数据是极少的,不足以支撑分析的进行,这时就需要使用一些数学的方法,“模拟产生“一些新的但又比较靠谱的值来满足需求&a…

为什么很多人说不建议学JAVA,说很难找到工作?

前言 在回答这个问题之前,我曾经也看到了类似的其他语言相关的问题: 那么现在问题来了,什么语言都不建议学,那什么是可以学的呢?看多了所谓的不建议学习的文章和回答固然可以了解到该语言的些许缺点和当前环境下的一些…

NTLM协议

0x01 LM Hash加密算法 LM Hash本质是一个DES加密,从Windows Vista和Windows Server 2008开始就禁用了LM Hash。LM Hash明文密码被限定在14位以内,密码超过14位则会停止使用LM Hash。下面介绍一下LM Hash的加密流程,以Pss1234为例&#xff1a…

Element-Plus搭建CMS页面结构 引入第三方图标库iconfont(详细)

Element-Plus组件库使用 element plus组件库是由饿了么前端团队专门针对vue框架开发的组件库,专门用于电脑端网页的。因为里面集成了很多组件,所以使用他可以非常快速的帮我们实现网站的开发。 安装: npm install element-plus --save 引入…

制作Visual Studio离线安装包

vs2015之后官网就不提供离线安装包了,使用离线安装包就需要自己手动制作一个; 以vs2019为例: 先去官网下载在线安装器 官网下载地址:Visual Studio 较旧的下载 - 2019、2017、2015 和以前的版本 (microsoft.com) 展开2019的标签…

表格tr根据内容撑开高度并且每个td继承tr的高度(height:inherit,align-items: stretch)

项目设计图 实际上数据又长又短,例如类型有可能出现2行甚至3行的字数,所以整个行要适配最高的高度,然后其他子元素继承行的高度。 ps:原生的table或者uview的u-table都不怎么好使,所以用view来做 在做的过程中出现高度…

澎湃认证:浪潮信息携手可利邦推出隐私计算一体机解决方案

北京可利邦与浪潮信息联合发布隐私计算一体机解决方案,以浪潮信息inMerge超融合产品为基础设施平台,预装可利邦隐私计算软件平台,通过SRDC一体机进行整机柜交付,助力客户快速上线隐私计算应用系统。该方案已通过浪潮信息澎湃技术认…

Node连接Mongodb数据库

1.初始化 npm init 2.安装mongoose npm i mongoose 3.导入mongoose const mongooserequire("mongoose") 4.连接mongodb服务 mongoose.connect("mongodb://127.0.0.1:27017/user") 说明:mongodb是协议,user是数据库,如果没有会自动创…

Oracle通过函数调用dblink同步表数据方案(全量/增量)

创建对应的包,以方便触发调用 /*包声明*/ CREATE OR REPLACE PACKAGE yjb.pkg_scene_job AS /*创建同步任务*/FUNCTION F_SYNC_DRUG_STOCK RETURN NUMBER;/*同步*/PROCEDURE PRC_SYNC_DRUG_STOCK(RUNJOB VARCHAR2) ; END pkg_scene_job; /*包体*/ CREATE OR REPL…

Dubbo最核心功能——服务暴露的配置、使用及原理

系列文章目录 【收藏向】从用法到源码,一篇文章让你精通Dubbo的SPI机制 面试Dubbo ,却问我和Springcloud有什么区别? 超简单,手把手教你搭建Dubbo工程(内附源码) 文章目录 系列文章目录前言一、服务暴露的…

idea乱码解决方式大汇总

目录 idea版本: 解决方法: 一、基本方法 1. File -> Settings -> Editor 2. 二、Maven乱码解决方法 三、运行时乱码解决方法 四、因为以前乱设置导致的乱码 idea版本: 解决方法: 一、基本方法 1. File -> Setti…

ETHERCAT主站网关转DEVICENET连接支持ethercat总线的PLC

大家好,今天要和大家分享一款自主研发的通讯网关——远创智控YC-ECTM-DNT。这款产品可是解决了不同协议设备数据交换的麻烦问题,让我们一起来看看它的神奇之处吧! 这款通讯网关有什么特别的呢?首先,它可以连接DEVICENE…

vue2 element-ui el-cascader地址省市区分开单独写

使用 npm 或 yarn 安装 element-china-area-data 包&#xff1a; npm install element-china-area-data 在你的代码中导入 element-china-area-data import { regionData } from element-china-area-data let that; 完整代码 <template><div><el-form ref&quo…