【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)

news2024/12/24 20:29:45

👨‍🎓博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!
🐋 希望大家多多支持,我们一起进步!😄
🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏 ⭐️ 加关注+💗


文章目录

  • 文章声明
  • 漏洞描述
  • 前述
  • 安装一些必要的命令(需要用到的)
  • Centos 服务器升级OpenSSH到9.3p2
    • 1、安装依赖
    • 2、编译安装openssl
    • 3、查看、备份并卸载原有OpenSSH
    • 4、下载OpenSSH二进制包
    • 5、解压并编译安装OpenSSH
    • 6、授权
    • 7、复制配置文件
    • 8、修改配置允许root用户远程登录
    • 9、启用sshd,生成服务配置文件,并重启服务
    • 10、验证升级是否成功
  • 可能遇到的问题及解决方式
    • 问题一:
    • 问题二:
    • 问题三:
    • 问题四:
  • 参考文献
  • 相关文章

文章声明

文章声明:此文基于实操撰写 生产环境:此文升级是基于9.3p2升级9.4p1
ssh -V查看版本是:OpenSSH_9.3p2, OpenSSL 1.1.1t 7 Feb 2023
问题关键字:OpenSSH 升级, OpenSSH 更新, OpenSSH 漏洞修复
漏洞信息:OpenSSH 命令注入漏洞(CVE-2020-15778)、OpenSSH 安全漏洞(CVE-2023-38408)

在这里插入图片描述

漏洞描述

OpenSSH 命令注入漏洞(CVE-2020-15778) 详细描述:

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。
OpenSSH 9.3p3及之前版本中的scp的scp.c文件存在命令注入漏洞。该漏洞源于外部输入数据构造可执行命令过程中,网络系统或产品未正确过滤其中的特殊元素。攻击者可利用该漏洞执行非法命令。

OpenSSH 安全漏洞(CVE-2023-38408) 详细描述:

OpenSSH(OpenBSD Secure Shell)是加拿大OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。

OpenSSH 9.3p2之前版本存在安全漏洞,该漏洞源于ssh-agent的PKCS11功能存在安全问题。攻击者可利用该漏洞执行远程代码。

前述

OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现,支持对所有的传输进行加密,可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.9版本至9.4之前版本存在安全漏洞,该漏洞源于将智能卡密钥添加到ssh-agent,会导致忽略每次转发的目标约束。
注:此操作步骤同样适用于Red Hat系所有 9.x 服务器系统。

注意事项:

在升级之前,建议打开多个SSH终端连接,并安装telnet服务器,确保在SSH服务器升级异常时,可以通过telnet服务器远程连接,进行紧急问题修复处理。
因为最开始需要直接卸载openssh,卸载完之后就连不上了,如有问题不好解决,所以建议多开几个SSH终端连接。
在升级前一定要备份原有的配置文件,以防出现意外情况。

安装一些必要的命令(需要用到的)

安装一些必要的命令(需要用到的)

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

如果没有外网,可以选择在有网络的服务器上下载rpm安装包,yum离线下载安装包可参考:Centos7 yum如何下载离线安装包?(详解)

或者是直接使用我提供的离线包:openssh7.4p1 升级到 openssh9.4p1 所需的离线包

网盘下载:
链接:https://pan.baidu.com/s/1lqPe1J3wbUuEyA9otQO35g?pwd=open
提取码:open

命令解析:

  • 1.1 OpenSSL:OpenSSH 使用了 OpenSSL 的加密库。因此,在更新 OpenSSH 之前,需要先更新 OpenSSL 的版本。
  • 1.2 PAM:OpenSSH 使用了Pluggable Authentication Modules (PAM),因此需要安装 PAM 相关的库文件。
  • 1.3 Zlib:OpenSSH 使用了 Zlib 库进行数据压缩。因此,需要安装 Zlib 的库文件。
  • 1.4 GCC 和 G++:OpenSSH 的编译需要 GCC 和 G++ 编译器。

Centos 服务器升级OpenSSH到9.3p2

1、安装依赖

安装一些必要的命令(需要用到的)

2、编译安装openssl

2.1 官网下载安装包:openssl官网

在这里插入图片描述
在这里插入图片描述

wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz

或者是使用我提供的离线包:openssh7.4p1 升级到 openssh9.4p1 所需的离线包

网盘下载:
链接:https://pan.baidu.com/s/1lqPe1J3wbUuEyA9otQO35g?pwd=open
提取码:open


如果遇到以下问题,后面加上--no-check-certificate

在这里插入图片描述

wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate

在这里插入图片描述

2.2 解压并放到/usr/local/目录

tar xf openssl-1.1.1t.tar.gz -C /usr/local

2.3 编译安装openssl

# 进入openssl目录
cd /usr/local/openssl-1.1.1t

# 编译安装openssl
./config shared --prefix=/usr/local/openssl
make -j 4
make install

2.4 为openssl做软连接

echo "/usr/local/openssl/lib/" >> /etc/ld.so.conf
# 加载配置文件
ldconfig
# 备份以前的openssl
mv /usr/bin/openssl /usr/bin/openssl.old
# 软连接,如果提示软连接已存在,记得备份软连接,然后在执行下面再次软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上;
ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

软连接,如果提示软连接已存在,记得备份软连接,然后在执行上面再次进行软连接,要不然会出问题,会导致root目录看不了,磁盘看不了,sftp连接不上,等等一系列问题;

2.5 查看openssl版本

openssl version -a

在这里插入图片描述

3、查看、备份并卸载原有OpenSSH

确保终端一直连接 断开远程连接就不能用了

# 查看当前安装包
[root@localhost ~]# rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64

# 查看当前OpenSSH版本(Centos7 默认使用OpenSSH_7.4p1)
[root@localhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

# 备份现有的SSH
[root@localhost ~]# mv /etc/ssh/ /etc/ssh.bak
[root@localhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
[root@localhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak

# 如果您是第一次升级,备份/etc/init.d/sshd时会不存在,不影响后续操作
[root@localhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
mv: 无法获取'/etc/init.d/sshd' 的文件状态(stat): No such file or directory

# 卸载现有OpenSSH
rpm -e --nodeps $(rpm -qa |grep openssh)

在这里插入图片描述

确保已经卸载成功(没有返回则卸载成功)

rpm -qa | grep openssh

在这里插入图片描述

4、下载OpenSSH二进制包

openssh官网:下载官网

wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

在这里插入图片描述

或者是使用我提供的离线包:openssh7.4p1 升级到 openssh9.4p1 所需的离线包

网盘下载:
链接:https://pan.baidu.com/s/1lqPe1J3wbUuEyA9otQO35g?pwd=open
提取码:open

5、解压并编译安装OpenSSH

# 将下载的openssh安装包移动到/usr/local下
[root@localhost ~]# mv openssh-9.4p1.tar.gz /usr/local/

# 进入/usr/local/目录解压openssh9.4
[root@localhost ~]# cd /usr/local/
[root@localhost local]# tar xf openssh-9.4p1.tar.gz

# 进入openssh目录
[root@localhost local]# cd openssh-9.4p1

# 编译安装
[root@localhost openssh-9.4p1]# CCFLAGS="-I/usr/local/include" \
LDFLAGS="-L/usr/local/lib64" \
./configure \
--sysconfdir=/etc/ssh \
--with-zlib \
--with-ssl-dir=/usr/local/openssl

[root@localhost openssh-9.4p1]# make -j 4
[root@localhost openssh-9.4p1]# make install

6、授权

[root@localhost openssh-9.4p1]# chmod 600 /etc/ssh/*

7、复制配置文件

[root@localhost openssh-9.4p1]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
[root@localhost openssh-9.4p1]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
[root@localhost openssh-9.4p1]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
[root@localhost openssh-9.4p1]# cp -ar /usr/local/openssh-9.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
[root@localhost openssh-9.4p1]# cp -ar /usr/local/openssh-9.4p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam

8、修改配置允许root用户远程登录

# 修改配置允许root用户远程登录(允许使用密码登录,允许root远程登录,开启端口,赋予/etc/init.d/sshd权限)
cat >>/etc/ssh/sshd_config<<EOF
PermitRootLogin yes
X11Forwarding yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.org
EOF

[root@localhost openssh-9.4p1]# sed -i "s/^#Port/Port/g" /etc/ssh/sshd_config
[root@localhost openssh-9.4p1]# chmod 755 /etc/init.d/sshd

9、启用sshd,生成服务配置文件,并重启服务

# 启用sshd,生成服务配置文件
[root@localhost openssh-9.4p1]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on

# 重启服务
[root@localhost openssh-9.4p1]# systemctl restart sshd
# 查看服务状态
[root@localhost openssh-9.4p1]# systemctl status sshd

在这里插入图片描述

10、验证升级是否成功

[root@localhost ~]# ssh -V
OpenSSH_9.4p1, OpenSSL 1.1.1t  7 Feb 2023

在这里插入图片描述

可能遇到的问题及解决方式

问题一:

编译如果有此报错,可能是你没安装gcc…需要的命令,返回最上面: 安装一些必要的命令(需要用到的),安装完再次编译就可以了。

在这里插入图片描述

问题二:

编译时报错信息:

checking for cc... cc
checking whether the C compiler works... no
configure: error: in `/usr/local/openssh-9.3p2':
configure: error: C compiler cannot create executables
See `config.log' for more details

gcc问题,如果gcc是5.4将gcc降级为4.8.5,我遇到的问题就是因为gcc的版本为5.4,将gcc版本降为4.8.5即可。

问题三:

编译时报错信息:

checking for openssl/opensslv.h... yes
checking OpenSSL header version... 009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx)
checking for OpenSSL_version... no
checking for OpenSSL_version_num... no
checking OpenSSL library version... configure: error: OpenSSL >= 1.0.1 required (have "009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx)")

这个报错是说版本要必须大于等于1.0.1,但是ssh -V我看的时候是1.0.2,可能还是因为版本太低了,我就升级了一个openssl版本为1.1.1,就可以了。安装openssl可参考:编译安装openssl

问题四:

升级OpenSSH后SFTP无法连接问题

  • 1.修改配置
vim  /etc/ssh/sshd_config
 
#override default of no subsystems
#Subsystem      sftp    /usr/local/openssh/libexec/sftp-server改成下面这句
Subsystem      sftp    internal-sftp
  • 2.重启sshd服务
systemctl restart sshd

再试一下就可以了。

参考文献

  • [1] 国家信息安全漏洞库:http://www.cnnvd.org.cn/
  • [2] 腾讯安全:https://s.tencent.com/research/bsafe/
  • [3] Centos7 yum如何下载离线安装包?(详解):https://liucy.blog.csdn.net/article/details/125780172?spm=1001.2014.3001.5502

相关文章

文章标题文章链接
【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_8.7p1(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/130484944
【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.3p1(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/131398113
【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.3p2(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/132848440
【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.3p2(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/132848789
【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/133697104
【Linux】 OpenSSH_9.3p2 升级到 OpenSSH_9.4p1(亲测无问题,建议收藏)https://liucy.blog.csdn.net/article/details/133682882

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

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

相关文章

lazarus:不安装任何驱动,直接使用csv文件作为数据集

目录 1 简介 2 需要的窗体控件很简单 3 定义字段并插入几条记录 4 其他操作 4.1 数据集保存为csv文件 4.2 清空数据 4.3 加载csv文件 5 运行程序 6 导出文件 1 简介 在某些数据操作需求特别简单的情况下&#xff0c;我们希望不要安装任何数据库&#xff0c;甚至连一个…

餐饮加盟信息展示预约小程序的内容如何

餐饮业规模持续增加&#xff0c;相关从业者逐渐增多&#xff0c;对中等规模以上的餐饮品牌来说&#xff0c;当有一定规模后除了开多家直营店外&#xff0c;还会开放招商加盟&#xff0c;扩展品牌、提升营收等。 由于餐饮加盟属于准属性业务&#xff0c;因此传统线下方式不太适…

投资理财:买理财亏损不保本怎么办?

大家好&#xff0c;我是财富智星&#xff0c;今天跟大家讨论一下投资理财&#xff0c;银行理财亏损不保本了&#xff0c;普通老百姓应该怎么办&#xff1f; 银行理财已经不再是保本且没有风险的产品了。对于追求稳健增值的大多数普通人来说&#xff0c;银行理财已经不再是他们的…

Python TCP服务端多线程接收RFID网络读卡器上传数据

本示例使用设备介绍&#xff1a;WIFI/TCP/UDP/HTTP协议RFID液显网络读卡器可二次开发语音播报POE-淘宝网 (taobao.com) #python通过缩进来表示代码块&#xff0c;不可以随意更改每行前面的空白&#xff0c;否则程序会运行错误&#xff01;&#xff01;&#xff01;如果缩进不…

「Verilog学习笔记」使用generate…for语句简化代码

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 分析 generate…for语句是Verilog HDL语言特有的语句&#xff0c;使用循环结构编写可综合的多个形式相近的代码&#xff0c;循环变量必须由特定关键字genvar声明。 timesca…

IDEA Plugin插件开发相关踩坑

1 前言 最近在研究IDEA插件开发&#xff0c;踩了不少坑&#xff0c;特意在这里记录一下…… 2 Java相关类找不到 照着网上一些资料&#xff0c;想要实现代码审计自动提示功能&#xff0c;需要继承AbstractBaseJavaLocalInspectionTool 结果import一片爆红&#xff0c;找不到相…

StackOverflow调查:2021-2022薪酬最高的编程语言

我应该学习哪种编程语言&#xff1f; 对于有抱负的软件工程师来说&#xff0c;这是最常见的问题&#xff0c;答案始终是&#xff1a;这取决于您的偏好以及您想要构建的内容。 但也许您想采取另一条路线并学习公司为您支付最高费用的语言。 如果是这样的话&#xff0c;这篇文章适…

GPT-2:基于无监督多任务学习的语言模型

欢迎来到魔法宝库&#xff0c;传递AIGC的前沿知识&#xff0c;做有格调的分享❗ 喜欢的话记得点个关注吧&#xff01; 今天&#xff0c;我们将共同探索OpenAI的GPT-2&#xff0c;跟随论文深入理解其技术细节。 论文&#xff1a;Language Models are Unsupervised Multitask Le…

ORACLE数据库初始化导入

ORACLE数据库初始化导入 文章目录 ORACLE数据库初始化导入创建表空间创建用户用户授权临时目录授权数据库目录授权导入dump文件 环境&#xff1a;linux 数据库&#xff1a;oracle 19c 创建表空间 -- 查询已创建目录 select directory_path,directory_name from all_directori…

Redis之与SSM集成Spring注解式缓存

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Redis实战开发》。&#x1f3af;&#x1f3af; …

大数据学习之Spark性能优化

文章目录 Spark三种任务提交模式宽依赖和窄依赖StageSpark Job的三种提交模式 Shuffle机制分析未优化的Hash Based Shuffle优化后的Hash Based ShuffleSort-Based Shuffle Spark之checkpointcheckpoint概述checkpoint与持久化的区别checkPoint的使用checkpoint源码分析 Spark程…

vue前端实现多个url下载并合并为zip文件

一、安装 npm install jszip npm install file-saver 二、引入 import axios from axios import JSZip from "jszip"; import FileSaver from "file-saver"; 三、核心代码 videoData:[/video/26519f026fc012521605563015227403.mp4,/video/f7b9cdae14…

聊聊芯片超净间的颗粒(particle)

在芯片制造领域&#xff0c;颗粒的存在可能对生产过程产生巨大影响。其中&#xff0c;每个微小的颗粒&#xff0c;无论是来自人员、设备&#xff0c;还是自然环境&#xff0c;都有可能在制程中引发故障&#xff0c;从而对产品性能产生负面影响。这就是为什么在芯片厂中&#xf…

【日积月累】SpringBoot 通过注解@CacheConfig @Cacheable @CacheEvict @CachePut @Caching使用缓存

目录 1.前言2.引入依赖3.启动类加入注解EnableCaching4.常用注解4.1CacheConfig4.2Cacheable4.3CacheEvict4.4CachePut4.5Caching 5.总结6.参考 文章所属专区 日积月累 1.前言 Spring在3.1版本&#xff0c;就提供了一条基于注解的缓存策略&#xff0c;实际使用起来还是很丝滑…

【内功修炼】详解函数栈帧的创建和销毁

文章目录 1. 什么是函数栈帧2. 理解函数栈帧能解决什么问题呢&#xff1f;3. 函数栈帧的创建和销毁解析3.1 什么是栈&#xff1f;3.2 认识相关寄存器和汇编指令常见寄存器常用汇编指令 3.3 详解函数栈帧的创建和销毁3.3.1 函数的调用堆栈&#xff08;main函数也是被其它函数调用…

手握“发展密钥”,TCL科技或迎价值重估?

在高度竞争且快速变化的泛半导体产业&#xff0c;每一次周期性或结构性的变化&#xff0c;都会对企业经营策略带来深远的影响。 2023年前三季度&#xff0c;泛半导体产业迎来结构性复苏。其中&#xff0c;主流显示领域供需关系趋向健康化&#xff0c;半导体显示行业整体上量价…

C语言 每日一题 PTA 11.7 day13

1.求e的近似值 自然常数 e 可以用级数 1 1 / 1! 1 / 2! ⋯ 1 / n! ⋯ 来近似计算。 本题要求对给定的非负整数 n&#xff0c;求该级数的前 n 1 项和。 代码实现 #include<stdio.h> void main() {int a, i, j; double b 1; double c 1;printf("请输入一个数\n…

零信任安全:构建无懈可击的网络防护体系

随着网络技术的飞速发展&#xff0c;信息安全问题日益凸显&#xff0c;传统的安全防护手段已经无法满足复杂多变的安全需求。在此背景下&#xff0c;零信任安全模型逐渐受到广泛关注。本文将探讨零信任安全的概念、优势以及如何构建无懈可击的网络防护体系。 一、零信任安全概念…

Go语言用Colly库编写的图像爬虫程序

下面是一个使用Colly库编写的Go语言图像爬虫程序&#xff0c;该程序会爬取news.qq上的图片&#xff0c;并使用proxy_host:duoip和proxy_port:8000的爬虫IP服务器进行抓取。 package mainimport ("fmt""net/http""github.com/crawlab-collective/go-co…

511-0101-08B 5136-PFB-VME DCS是工厂级数字化的核心

511-0101-08B 5136-PFB-VME DCS是工厂级数字化的核心 在一个预计到2023年全球将达到174亿美元的不断增长的市场中&#xff0c;行业分析公司ARC Advisory Group的一份市场分析报告证实&#xff0c;ABB将其在分布式控制系统(DCS)市场的份额增加到20.0%&#xff0c;保持了其在20世…