在Linux中进行OpenSSH升级

由于OpenSSH有严重漏洞,因此需要升级OpenSSH到最新版本。

OpenSSL和OpenSSH都要更新,OpenSSH依赖于OpenSSL。

第一步,查看当前的OpenSSH服务版本。

命令:ssh -V

第二步,安装、启动telnet,关闭安全文件,防止因卸载OpenSSH而导致无法登录主机。

# 安装、启动telnet

命令:yum -y install telnet

yum -y install telnet-server

systemctl enable telnet.socket

systemctl start telnet.socket

# 关闭安全文件

命令:mv /etc/security /etc/security.bak

第三步,安装升级OpenSSH需要的依赖包。

命令:yum -y install gcc keyutils-libs rpm-build krb5-devel libcom_err-devel libselinux-devel pam-* openssl-devel pkgconfig vsftpd zlib*

第四步,备份原有的SSH服务版本。

命令:mv /etc/ssh /etc/ssh.bak

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

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

第五步,下载OpenSSH。

登录网址:OpenSSH: Release Notes下载最新版本OpenSSH安装包,即openssh-9.7p1.tar.gz,然后使用WinSCP将安装包上传到/opt文件夹中。

第六步,卸载OpenSSH的rpm安装包。

命令:rpm -qa | grep openssl

rpm -qa | grep openssh

# 普通删除模式

命令:rpm -e `rpm -qa | grep openssh`

# 如果使用普通删除模式命令删除时,提示有依赖的其它文件,则用强力删除模式命令对其进行强力删除

命令:rpm -e `rpm -qa | grep openssh` --nodeps

第七步,编译安装OpenSSH。

# 解压OpenSSH

命令:cd /opt

tar zxvf openssh-9.7p1.tar.gz

# 编译安装OpenSSH

命令:cd /opt/openssh-9.7p1/

./configure --prefix=/usr/local/openssh \

--sysconfdir=/etc/ssh \

 --with-ssl-dir=/usr/local/openssl \

--with-zlib=/usr/local/zlib

make && make install

第八步,查看OpenSSH命令的执行路径。

命令:which sshd

第九步,复制源码解压路径的开机启动脚本到/etc/init.d文件夹下。

命令:cp /opt/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd

第十步,修改开机启动脚本/etc/init.d/sshd。

编辑/etc/init.d/sshd,对开机启动脚本做如下修改:

“SSHD=/usr/sbin/sshd”修改为“SSHD=/usr/local/sbin/sshd”;

“/usr/bin/ssh-keygen -A”修改为“/usr/local/bin/ssh-keygen -A”。

命令:sed -i '25cSSHD=/usr/local/sbin/sshd' /etc/init.d/sshd

sed -i '41c/usr/local/bin/ssh-keygen -A' /etc/init.d/sshd

第十一步,修改配置文件sshd_config,允许root用户通过ssh远程登录。

命令:sed -i "/#PermitRootLogin prohibit-password/c\PermitRootLogin yes" /etc/ssh/sshd_config

第十二步,复制源码解压路径的ssh-copy-id文件到文件夹/usr/local/bin/下,并增加ssh-copy-id文件的执行权限。

命令:cp /opt/openssh-9.7p1/contrib/ssh-copy-id /usr/local/bin/

chmod +x /opt/openssh-9.7p1/contrib/ssh-copy-id

第十三步,启动sshd服务并验证更新是否成功。

命令:systemctl daemon-reload

service sshd start

/usr/local/bin/ssh -V

若结果显示“OpenSSH_9.7p1”,则说明OpenSSH升级成功

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

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

相关文章

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的癌症图像检测系统(深度学习模型+UI界面代码+训练数据集)

摘要:本篇博客深入介绍了如何借助深度学习技术开发癌症图像检测系统,以提高医疗诊断的精度和速度。系统基于先进的YOLOv8算法,并对比分析了YOLOv7、YOLOv6、YOLOv5的性能,如mAP和F1 Score。详细解释了YOLOv8的原理,并附…

2024年高校邦大学生职业生涯规划答案

2024年高校邦大学生职业生涯规划答案 2024年高校邦——大学生职业生涯规划答案 第一章 1多选 大学教育的价值是什么? A.丰富知识 B.完善人格 C.为未来的生活打下坚实基础 D.读研 答案:ABC 2单选 以下哪种不属于职业生涯规划的步骤&#xff1f…

如何设计一个高并发的系统--简谈

设计一个高并发系统可以从下面这些角度来考虑。 所谓设计高并发系统,就是设计一个系统,保证它整体可用的同时,能够处理很高的并发用户请求,能够承受很大的流量冲击。 我们要设计高并发的系统,那就需要处理好一些常见…

PHP过滤Emoji表情和特殊符号的方法

在PHP中,过滤掉昵称中的表情和特殊符号通常可以通过正则表达式来实现。PHP中的preg_replace函数可以使用正则表达式来搜索和替换字符串中的内容。 以下是一个例子,展示了如何移除字符串中的Emoji和特殊符号: function removeEmojiAndSpec…

Linux 命令或者一些工具

locale – 设置和显示程序运行的语言环境 locale -a | grep en_US.UTF-8.sudo locale-gen en_US.UTF-8sudo dpkg-reconfigure localesexpect 常用命令总结 expect命令spawnexpectsendexp_continuesend_userexit chrpath工具 chrpath 是一个用于修改可执行文件或共享库的运行…

JVM是如何运行的

JVM(Java Virtual Machine,Java虚拟机)是 Java 程序的运行环境,它负责将 Java 字节码翻译成机器代码并执行。也就是说 Java 代码之所以能够运行,主要是依靠 JVM 来实现的。 JVM 整体的大概执行流程是这样的&#xff1…

国产AI视频技术迎来新成员Etna,4K 60帧 15秒超高清视频

国内AI视频技术领域传来好消息,一款名为Etna的AI视频生成工具引起了业界的广泛关注。这款由七火山公司开发的技术,号称能够实现15秒4K 60帧的超高清视频生成,让人眼前一亮! 🚀 国产技术的崛起 Etna的问世,…

C++高级面试题:解释 C++ 中的行为参数化(Behavioral Parameterization)

解释 C 中的行为参数化(Behavioral Parameterization) 行为参数化是一种编程模式,它允许在运行时动态地指定算法或函数的行为。在 C 中,行为参数化通常通过函数指针、函数对象(Functors)、Lambda 表达式等…

DLT算法求解单应性矩阵

DLT算法求解单应性矩阵 原理: 单应性矩阵描述了两个图像之间的投影变换关系,即从一张图到另一张图的变换。 下面是DLT算法的基本原理: 构建投影方程: 对于两个图像中的对应点 ( x , y , 1 ) (x, y, 1) (x,y,1) 和 ( u , v ,…

【JS】JavaScript 中 this 关键字

JavaScript 中 this 关键字 this 是什么this 的绑定规则this 的指向 this 是什么 this 是一个关键字,能够在函数执行过程中访问运行环境,它的值根据函数的调用方式和上下文而变化,所以 this 是动态的,动态指向当前函数的运行环境…

Lazada全托管是什么?Lazada全托管ERP哪个好用?

做工厂及拥有自有品牌的你,是否因为跨境的头程费用、仓储费用、尾程费用如何结算而烦恼?是否因为不懂市场、不懂运营、不够专业而对跨境电商领域望而却步?那么,你或许可以尝试全托管。 一、什么是全托管 全托管是近两年电商领域…

Python之函数进阶-柯里化

Python之函数进阶-柯里化 柯里化是一种将多参数函数转化为单参数高阶函数的技术。 具体来说,柯里化过程会将一个接受多个参数的函数,转换成一系列接受一个参数的函数,这些函数在内部组合起来,最终完成原函数的运算。 柯里化是一…

【一】【设计模式】类关系UML图

1. 继承(Generalization) 继承是对象间的一种层次关系,允许子类继承并扩展父类的功能。 UML线:带有空心箭头的直线,箭头指向基类(父类)。 class Parent {public void parentMethod() {System.…

AIOps 智能运维:有没有比专家经验更优雅的错/慢调用分析工具?

作者:图杨 工程师小 A 刚刚接手他们公司最核心的电商系统的运维工作,小 A 发现,在生产环境中,系统明明运行得非常稳定,但是总会出现一些“诡异”的情况。比如: 偶尔会一些错误调用,但是&#…

Android UI:ViewTree中的事件传递

文章目录 ViewTree: 组合模式measure事件的传递 事件传递: View/ViewGroup的measure和onMeasureLinearLayout重写onMeasureRelativeLayout重写onMeasurelayout事件的传递 事件传递:View/ViewGroup的layout和onLayout LinearLayout重写onLayout RelativeLayout重写onLayoutdraw…

C语言--数据到字符串的相互转换:将数据转换为2进制,16进制,10进制,8进制 字符串类型;字符串转换为整型 常用的函数 与stdlib 库函数说明

数据 --> 字符串(2进制16进制10进制8进制) 包含&#xff1a;整型数据转换为 2进制字符串&#xff1b; 整型数据转换为16机制数据&#xff1b;整型数据转换为 10进制字符串&#xff1b; 1. 整型数据转换为 2 进制数据字符串&#xff1a; #include <stdio.h>// 将整…

python: inspect模块各函数的用法

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

浅谈如何自我实现一个消息队列服务器(1)——需求分析

文章目录 一、什么是消息队列&#xff1f;二、当下主流的消息队列(MQ)三、自我实现一个消息队列服务器的前期准备——需求分析3.1 核心概念3.2 broker server 核心概念3.2.1、虚拟主机&#xff08;Virtual Host&#xff09;3.2.2、交换机&#xff08;Exchange&#xff09;3.2.2…

shopee店铺降权了怎么办?shopee店铺降权恢复步骤

当您发现自己的Shopee店铺被降权时&#xff0c;这意味着您的产品在搜索结果中的排名下降&#xff0c;从而可能导致流量和销售额的减少。面对这种情况&#xff0c;您需要采取一系列措施来恢复或提升店铺的权重。以下是一些具体的步骤和拓展的原因分析&#xff1a;一&#xff1a;…

3、设计模式之工厂模式2(Factory)

一、什么是工厂模式 工厂模式属于创建型设计模式&#xff0c;它用于解耦对象的创建和使用。通常情况下&#xff0c;我们创建对象时需要使用new操作符&#xff0c;但是使用new操作符创建对象会使代码具有耦合性。工厂模式通过提供一个公共的接口&#xff0c;使得我们可以在不暴露…