centos7|操作系统|低版本的OpenSSH升级到最新版本OpenSSH-9.8.p1

前言:

1、

OpenSSH是什么
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控件和文件传输过程中的数据,并由此来代替原来的类似服务。

2、

OpenSSH和telnet有什么区别?

两者都是通过网络协议连接服务器的工具,但OpenSSH是使用的TCP协议,更为安全,而telnet则是使用的UDP协议,从根本上来说,这个协议是不安全,不可控的,因此,telnet并不能取代sshd,在生产环境通常也是禁止使用telnet来进行远程连接的

3、

为什么要升级OpenSSH
OpenSSH是用于安全远程登录和其他安全网络服务的软件包,对于大多数Linux发行版来说,它都是默认安装的。随着时间的推移,OpenSSH的新版本可能会引入安全性更新和改进,因此升级到最新版本是很有必要的。特别是对于CentOS 7,由于它已经停止了官方支持,因此及时升级系统组件变得更加重要。

4、

OpenSSH升级的必要流程

第一,需要对旧的sshd以及客户端ssh以及相关配置文件做备份;

第二,获取到需要的安装升级包,可以是源码包的形式也可以是rpm包或者deb等等的形式;

第三,需要给自己留一个后门,防止升级失败把自己关在门外的情况发生,通常,我们是暂时启用telnet连接,并测试好telnet,确定telnet是可用的就可以了;

第四、开始正式升级安装sshd服务,可以是yum 或者apt升级的形式,也可以是rpm -Uvh这样的形式,也可以是编译安装并配置动态链接库,运行程序,配置文件这样的形式;

第五、OpenSSH升级安装完成后,检测sshd服务是否正常,可用,检查OpenSSH的各项功能,检查OpenSSH的版本

第六、如果发现OpenSSH升级有问题,不能正常ssh链接服务器,执行回滚操作,主要是利用第一步的备份文件进行恢复

第七、如果OpenSSH升级确认没有问题,清除安装过程产生的垃圾文件,关闭telnet这个后门,圆满结束此次升级工作

🆗,我已经在虚拟机编译生成了一个可用的OpenSSH rpm包,可用于centos7全系列,欧拉2.0以及欧拉2.5系列服务器

二、

OpenSSH最新版本9.8.p1版本的rpm包下载地址

链接:https://pan.baidu.com/s/1c1bq8wvXQE4fo0BKjpyr-A?pwd=sshd 
提取码:sshd 

三、

备份sshd

二进制文件不需要备份,主要是备份配置文件,命令为

cp -r /etc/ssh{,.bak}


四、

telnet-server的安装

该服务安装非常简单,一般配置好本地仓库就可以非常简单的安装了,安装命令为:

yum install telnet-server -y 

修改telnet的配置文件,不要使用默认端口23,然后开放telnet连接权限,启动telnet服务就可以了

修改/usr/lib/systemd/system/telnet.socke 这个文件,端口修改为10023

[Unit]
Description=Telnet Server Activation Socket
Documentation=man:telnetd(8)

[Socket]
ListenStream=23
Accept=true

[Install]
WantedBy=sockets.target

开放telnet连接权限,这个pts/数字是表示登陆的终端号,必须要有这些才允许登陆:

echo "pts/0">>/etc/securetty
echo "pts/1">>/etc/securetty
echo "pts/2">>/etc/securetty
echo "pts/3">>/etc/securetty
echo "pts/4">>/etc/securetty

启动telnet服务,然后随便打开一个xshell,并配置协议为telnet 测试是否可以成功连接就可以了

启动telnet服务命令:

systemctl start telnet.socket

五、

正式升级OpenSSH

这一步非常简单,如果是把这些rpm包制作成yum仓库,使用yum安装,会自动给你备份配置文件,如果rpm安装,不会自动备份配置文件

rpm命令为:

rpm -Uvh *.rpm


该命令会将旧的rpm包删除,大体执行后的日志如下:

[root@centos10 x86_64]# rpm -Uvh ./*.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:openssh-9.8p1-1.el7              ################################# [ 13%]
   2:openssh-askpass-gnome-9.8p1-1.el7################################# [ 25%]
   3:openssh-clients-9.8p1-1.el7      ################################# [ 38%]
   4:openssh-server-9.8p1-1.el7       ################################# [ 50%]
   5:openssh-debuginfo-9.8p1-1.el7    ################################# [ 63%]
Cleaning up / removing...
   6:openssh-server-7.4p1-21.el7      ################################# [ 75%]
   7:openssh-clients-7.4p1-21.el7     ################################# [ 88%]
   8:openssh-7.4p1-21.el7             ################################# [100%]

六、

测试sshd服务是否正常

1、

打印sshd服务的版本号

[root@centos10 x86_64]# sshd -V
OpenSSH_9.8p1, without OpenSSL

 这里稍微解释一下,without OpenSSL并不是说OpenSSL  就不需要了,只是我编译的时候和OpenSSL解绑了而已OpenSSH服务完全是可以正常使用的,这点无需担心

2、

ssh-keygen 生成密钥

[root@centos10 x86_64]# ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/root/.ssh/id_ed25519): 
/root/.ssh/id_ed25519 already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_ed25519
Your public key has been saved in /root/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:qtiHX2pKI0C88MsRMvVXjMLIXIt5PmOAa1+ziY9clgU root@centos10
The key's randomart image is:
+--[ED25519 256]--+
| o.+.  o.        |
|.o++o....        |
|=o= +E.          |
|o=.= ..          |
|ooo =o .S        |
|.o.+oo*.         |
|  +ooB. .        |
|  .=*ooo         |
|  .o+*o          |
+----[SHA256]-----+

可以看到十分正常的就生成了,但是需要说明一点rsa密钥用不了,原因未知,如果介意就不要用这个升级包了

3、

ssh-copy-id  

在上面的百度网盘内有提供,放到系统环境变量下就可以使用了,经测试该命令也是没有问题的

其它的ssh族命令经测试都是正常的,这里我就不把测试结果贴出来了

4、

sshd服务的重启

sshd服务重启命令为

systemctl restart sshd

第一次重启,发现有很多报错,无所谓,这个说的是证书文件权限太高而已,都修改成0600权限就可以了 

- Unit sshd.service has finished shutting down.
Jul 08 04:38:48 centos10 systemd[1]: Starting SYSV: OpenSSH server daemon...
-- Subject: Unit sshd.service has begun start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit sshd.service has begun starting up.
Jul 08 04:38:48 centos10 sshd[27344]: Starting sshd:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Jul 08 04:38:48 centos10 sshd[27344]: @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Jul 08 04:38:48 centos10 sshd[27344]: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Jul 08 04:38:48 centos10 sshd[27344]: Permissions 0640 for '/etc/ssh/ssh_host_rsa_key' are too open.
Jul 08 04:38:48 centos10 sshd[27344]: It is required that your private key files are NOT accessible by others.
Jul 08 04:38:48 centos10 sshd[27344]: This private key will be ignored.
Jul 08 04:38:48 centos10 sshd[27344]: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Jul 08 04:38:48 centos10 sshd[27344]: @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
Jul 08 04:38:48 centos10 sshd[27344]: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Jul 08 04:38:48 centos10 sshd[27344]: Permissions 0640 for '/etc/ssh/ssh_host_ed25519_key' are too open.
Jul 08 04:38:48 centos10 sshd[27344]: It is required that your private key files are NOT accessible by others.
Jul 08 04:38:48 centos10 sshd[27344]: This private key will be ignored.
Jul 08 04:38:48 centos10 sshd[27344]: sshd: no hostkeys available -- exiting.
Jul 08 04:38:48 centos10 sshd[27344]: [FAILED]
Jul 08 04:38:48 centos10 systemd[1]: sshd.service: control process exited, code=exited status=1
Jul 08 04:38:48 centos10 systemd[1]: Failed to start SYSV: OpenSSH server daemon.
-- Subject: Unit sshd.service has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel

例如:

chmod 0600 /etc/ssh/ssh_host_ed25519_key

权限文件解决后,查看sshd服务的配置文件,确认没有问题,再次重启sshd服务就可以结束升级了

七、

关于回滚问题

for i in `rpm -qa |grep openssh`;do rpm -e $i --nodeps ;done

一般用for循环强制删除,删除后,利用本地仓库安装原来的旧sshd服务就可以了

本地仓库相关知识见我的博客:Linux的完全本地仓库搭建指南(科普扫盲贴)_linux7如何搭建本地仓库-CSDN博客

OpenSSH-9.8.p1的源码安装包的下载地址:https://openbsd.cs.toronto.edu/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实现antd designable平台的组件拖拽功能

平台:designable设计器 github:designable 目录 1 背景2 技术栈3 组件拖拽和放置3.1 类型定义3.2 拖拽3.3 放置 1 背景 由于业务需求,我们需要实现designable平台的一个简易版的组件拖拽功能。 #mermaid-svg-QrxSDGe9YyGG3LbQ {font-family:…

远心镜头简介

一、远心镜头 大家都有这种印象,一个物体在人眼看来,会有近大远小的现象。这是因为物体近的时候,在视网膜上投影大,小的时候,投影小。镜头也是一样,因为近大远小的原因,会产生误差。特别是在做尺…

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能,但是没有后台url进行测试,这时候就可以使用postman提供的url: https://postman-echo.com/post接下来,我将教你在postman中,用该url测试图片上传功能。 1.发送图片上传请求 第一步…

学习笔记——动态路由——OSPF聚合(汇总)

十一、OSPF聚合(汇总) 1、路由聚合(汇总) 路由汇总是一种重要的思想,在大型的项目中是必须考虑的一个重点事项。随着网络的规模越来越大,网络中的设备所需维护的路由表项也就会越来越多,路由表的规模也就会逐渐变大,而路由表是需…

Linux系统(Centos)下MySQL数据库中文乱码问题解决

问题描述:在进行数据库使用过程中,数据库里的数据中文都显示乱码。操作数据库的时候,会出现中文乱码问题。 解决方法如下: 第一步:打开虚拟机进入系统,启动MySQL。 第二步:连接登录MySQL输入…

0301STM32GPIO外设输出

STM32GPIO外设输出 STM32内部的GPIO外设GPIO简介基本结构GPIO位结构输入部分:输出部分: GPIO八种工作模式浮空/上拉/下拉输入模拟输入开漏/推挽输出复用开漏/推挽输出 手册寄存器描述GPIO功能描述外设的GPIO配置GPIO寄存器描述端口输入数据寄存器端口输出…

【驱动篇】龙芯LS2K0300之ADC驱动

实验目的 由于LS2K0300久久派开发板4.19内核还没有现成可用的ADC驱动,但是龙芯官方的5.10内核已经提供了ADC驱动,想要在4.19内核使用ADC就要参考5.10内核移植驱动,本次实验主要是关于ADC驱动的移植和使用 驱动移植 主要的驱动代码主要有3个…

【ROS2】初级:客户端-创建自定义 msg 和 srv 文件

目标:定义自定义接口文件( .msg 和 .srv )并将它们与 Python 和 C节点一起使用。 教程级别:初学者 时间:20 分钟 目录 背景 先决条件 任务 1. 创建一个新包2. 创建自定义定义3 CMakeLists.txt4 package.xml5. 构建 tut…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【21】【购物车】 购物车需求描述购物车数据结构数据Model抽取实现流程(参照京东)代码实现参考 购物车需求描述 用户可以在登录状态下将商品添加到购物车【用户购物…

【LabVIEW学习篇 - 4】:程序结构——条件结构、事件结构、禁用结构

文章目录 条件结构案例一(布尔输入)案例二(整数输入)案例三(字符串输入) 事件结构案例一案例二 禁用结构 条件结构 条件结构的组成部分: 选择器标签(带方框的“?”)&…

PCIe驱动开发(2)— 第一个简单驱动编写和测试

PCIe驱动开发(2)— 第一个简单驱动编写和测试 一、前言 教程参考:02_实战部分_PCIE设备测试 教程参考:03_PCIe设备驱动源码解析 二、驱动编写 新建hello_pcie.c文件 touch hello_pcie.c然后编写内容如下所示: #i…

基于java+springboot+vue实现的校园外卖服务系统(文末源码+Lw)292

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,外卖信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广…

目标检测2--yolov1中相关基础知识(边框回归、交并比、nms)介绍

文章目录 前言回归介绍基本概念线性回归非线性回归边框回归 交并比介绍定义程序实现 NMS介绍定义与原理工作原理代码实现 前言 在上篇博客目标检测1–Pytorch目标检测之yolov1中介绍了yolov1的原理,里面提到几个知识点现在详细介绍一下。 回归介绍 在上篇博客中提…

51单片机STC89C52RC——16.1 五项四线步进电机

目的/效果 让步进电机 正向转90度,逆向转90度 一,STC单片机模块 二,步进电机 2.2 什么是步进电机? 步进电机可以理解为:是一个按照固定步幅运动的“小型机器”。它与普通电机不同点在于,普通电机可以持…

【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(十二)-管道、环境变量、常用命令

大致介绍了一下管道、环境变量、一些常用的基本命令,可以当作学习笔记收藏学习一下!!! 文章目录 前言 一、管道 二、环境变量 1.概念 2.查看 3.修改 4.常用环境变量 三、系统状况 总结 前言 大致介绍了一下管道、环境变量、一些常…

基于Java的水果商品销售网站

1 水果商品销售网站概述 1.1 课题简介 随着电子商务在当今社会的迅猛发展,水果在线销售已逐渐演变为一种极为便捷的购物方式,日益受到人们的青睐。本系统的设计初衷便是构建一个功能完备、用户体验友好的水果销售平台,致力于为用户提供优质、…

昇思25天学习打卡营第14天|基于MindNLP的文本解码原理

基于MindNLP的文本解码原理 文本解码 文本解码是自然语言处理中的一个关键步骤,特别是在任务如机器翻译、文本摘要、自动回复生成等领域。解码过程涉及将编码器(如语言模型、翻译模型等)的输出转换为可读的文本序列。以下是一些常见的文本解码方法和原理: 1. 自回归解码:…

常用的MRI分析软件

MRI(磁共振成像)分析软件种类繁多,涵盖了从基础图像处理到高级数据分析的各个方面。这些软件广泛应用于临床诊断、研究和教育等领域。以下是一些常用的MRI分析软件: 开源软件 商用软件 特殊用途软件 在线工具和云平台 这些软件各…

孟德尔随机化与痛风3

写在前面 检索检索,刚好发现一篇分区还挺高,但结果内容看上去还挺熟悉的文章,特记录一下。 文章 Exploring the mechanism underlying hyperuricemia using comprehensive research on multi-omics Sci Rep IF:3.8中科院分区:2区 综合性期…

# [0705] Task06 DDPG 算法、PPO 算法、SAC 算法【理论 only】

easy-rl PDF版本 笔记整理 P5、P10 - P12 joyrl 比对 补充 P11 - P13 OpenAI 文档整理 ⭐ https://spinningup.openai.com/en/latest/index.html 最新版PDF下载 地址:https://github.com/datawhalechina/easy-rl/releases 国内地址(推荐国内读者使用): 链…