在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的原理,并附…

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

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

JVM是如何运行的

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

【深度学习笔记】7_7 AdaDelta算法

注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 7.7 AdaDelta算法 除了RMSProp算法以外,另一个常用优化算法AdaDelta算法也针对AdaGrad算法在迭代后期可能较难找到有用解的…

嵌入式驱动学习第三周——linux内核链表

前言 在 Linux 内核中使用最多的数据结构就是链表了,其中就包含了许多高级思想。 比如面向对象、类似C模板的实现、堆和栈的实现。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博…

C#无法给PLC写入数据原因分析

一、背景 1.1 概述 C#中无法给PLC写入数据的原因有很多,这里分享网络端口号被占用导致无法写入的确认方法 1.2 环境 ①使用三菱PLC ②C#通过网口与PLC进行通讯 二、现象 1.1 代码 通过HslCommunication连接PLC时,连接返回成功,写入返回失败 …

snakeflow的springboot项目

Gitee搜索“liuxz/snakerflow”,它是spring boot集成了一款国产工作流引擎snakerflow。 下面是安装步骤: 创建数据库snaker-web,字符集设置成utf8mb4和utf8mb4_generic。不然的话,中文插入不进去。 运行sql命令 CREATE TABLE …

Kotlin:泛型

点击查看泛型中文文档 点击查看泛型英文文档 简介 与 Java 类似&#xff0c;Kotlin 中的类也可以有类型参数&#xff1a; class Box<T>(t: T) {var value t }一般来说&#xff0c;要创建这样类的实例&#xff0c;我们需要提供类型参数&#xff1a; val box: Box<…

调试安卓 gles性能瓶颈

目录 下载Arm Performance Studio编译Unity Shader运行malios调试用处和限制 原文请见&#xff1a;参考地址 使用mali offline shader compiler分析shader的性能瓶颈。 下载Arm Performance Studio 下载地址 编译Unity Shader 通常选择GLES3x。 You might need to select G…

智能控制:物联网智能插座对接文档

介绍 一开始买的某米的插座&#xff0c;但是好像接口不开放&#xff0c;所以找到了这个插座&#xff0c;然后自己开发了下&#xff0c;用接口控制插座开关。wifi的连接方式&#xff0c;通电后一般几秒后就会连接上wifi&#xff0c;这个时候通过接口发送命令给他。 产品图片 通…

idea配置自定义注释模版和其他模板

项目场景&#xff1a; idea配置自定义模版 自定义注释模版其他模板&#xff0c;包括syso快捷键&#xff0c;swith快捷键等 自定义注释模版 1、File and Code Templates 第一种类创建完后头部自动生成注释模板 打开idea&#xff0c;选择 Settings--> Editor--> File a…

nvm安装不同版本的node

在项目开发过程中&#xff0c;不同项目依赖的node版本不同&#xff0c;但频繁的卸载和安装很麻烦&#xff0c;这篇文章介绍nvm安装过程 1.nvm安装 这个网上随便找一篇跟着安装即可 nvm安装教程 2.nvm安装不同版本的node 网上普遍的方式是&#xff1a; 找到nvm安装目录下的s…