Linux操作系统升级低版本的OpenSSH到9.3的高版本

news2024/10/5 14:14:45

OpenSSH 9.3之前的版本存在各种各样的安全漏洞,为此,我们需要将OpenSSH升级到最新的9.3的版本。

执行:ssh -V,我们可以查看当前的openssh版本

 为了避免升级过程中出现意外而导致服务器无法正常使用,建议操作前先对服务器进行快照备份!!!

1. 备份原有pam.d下的sshd文件

mv /etc/pam.d/sshd /etc/pam.d/sshd-bak
ls -l /etc/pam.d/sshd*

cp /etc/ssh/ /etc/ssh-bak/

当备份pam.d下的sshd文件时,发现该路径下没有此文件时,可以从其他服务器拷贝一个过来,或是执行:vi /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

2. 安装telnet

升级过程会卸载旧的ssh而导致无法远程,所以先安装一个Telnet。如果安装期间不使用服务器则可忽略telnet的安装(毕竟还有服务器的快照备份)

检查系统中是否已经安装了telnet的服务端和客户端,命令如下:

rpm -q telnet-server
rpm -q telnet

当系统中没有安装telnet时,则会报如下信息:

执行命令进行安装telnet

yum install telnet-server  -y
yum install telnet -y

设置开机启动并启动telnet

systemctl enable telnet.socket
systemctl start telnet.socket

防火墙开启23端口,使用 telnet ip 进行连接登录。默认系统中是不允许root用户使用telnet登录的,因此我们需要授权一下

echo 'pts/0' >>/etc/securetty
echo 'pts/1' >>/etc/securetty

当我们在进行登录时无法正常登录时,主机端执行

tail /var/log/secure

假如我们看到的是:access denied: tty 'pts/3' is not secure !

此时我们如果看到的是pts几就将几添加一下

echo 'pts/3' >>/etc/securetty

添加后一定要重启telnet

3. 下载openssh包进行升级

cd /opt/
wget http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.3p1.tar.gz

解压

tar -zxvf openssh-9.3p1.tar.gz
cd openssh-9.3p1

卸载旧版本

rpm -e --nodeps `rpm -qa | grep openssh`

安装相关依赖

yum -y install gcc pam-devel zlib-devel openssl-devel

编译配置

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords --with-pam

编译并安装

make && make install

 文件授权

chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

复制配置文件

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
chmod u+x /etc/init.d/sshd

还原配置文件

cp /etc/pam.d/sshd-bak /etc/pam.d/sshd
cp /etc/ssh-bak/sshd_config /etc/ssh/sshd_config

添加开机自启

chkconfig --add sshd
chkconfig sshd on

 执行:sshd -t  验证配置文件是否正确

 此时我们已经看到这两个属性在当前openssh版本下不支持,我们进入配置文件,将这两个属性注释掉

vi /etc/ssh/sshd_config

重新启动sshd

systemctl restart sshd

 执行:ssh -V  此时我们已经可以看到openssh已经升级到了9.3

 4. 升级过程遇到的坑

4.1 升级后ssh工具无法成功连接(或是连接上了,但是黑框打不开),找了很多资料,最终发现,问题出在了selinux上。此时我们只需要执行:setenforce 0  之后重启openssh的服务即可

setenforce 0
systemctl restart sshd

到此我们会发现ssh工具已经能顺利连接服务器了

4.2 升级ssh工具后sftp窗口打不开,这个很好解决,只需要配置一下sshd_config即可轻松解决

 

vi /etc/ssh/sshd_config

注释掉Subsystem那行,重新添加一行

 重启openssh服务,注意正在使用的ssh工具也关闭掉重启一下(可能出于连接状态,但是sftp打不开。但此问题截止目前已经处理了,所以也需要关闭重新打开)。

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

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

相关文章

插槽的使用!!

什么是插槽 插槽(Slot)是 vue 为组件的封装者提供的能力。允许开发者在封装组件时,把不确定的、希望由用户指定的部分定义为插槽。可以把插槽认为是组件封装期间,为用户预留的内容的占位符 即:使用者来决定某一块区域…

开利网络拜访番禺前后仓国际珠宝基地,以数字化技术赋能产业升级

近日,开利网络拜访位于番禺的前后仓国际珠宝基地,对基地目前的数字化需求和产业升级方向进行了解和探讨。目前,基地拥有以数字贸易综合服务中心,以人才、流量、运营、金融为抓手,以供应链选品、直播电商、跨境电商为媒…

【C++医学影像PACS】CT检查中的三维重建是什么检查?

一、【PACS影像科普】CT检查中的三维重建是什么检查? 三维重建是多层螺旋CT的一个最大的优点,也是影像工作多年来,从横断解剖到多平面,乃至立体的一次飞跃,让抽象变的形象,大大地提高了准确性,为…

大数据测试之数据仓测试怎么做(下)

前面的文章我们为大家介绍了一个常见的互联网大厂的数据仓的技术框架,也就是下面这张图所展示的内容。 为大家介绍了从操作数据层,到DW层,再到汇总数据层,最后到维度层和数据应用层的整个流程。本文我们将整个架构打平来展示制作…

我们正在开发一套组件库,欢迎你的加入~

项目地址 github地址 可以先点进来康康~ 技术栈 目前我们整体采用的是vue3typescriptless作为整体的开发的选择 需要说的是,我们并没有采用很多组件库采用的TSX的写法,而是选择了SFC的写法,这是因为我们觉得对于大部分的vue开发者来说&am…

用得最多的企业文件加密软件【企业文件加密软件前十】

企业文件加密软件是一种专门设计用于保护企业敏感信息的软件工具。它通过使用加密算法将企业的文件、文件夹和移动设备上的数据转化为不可读的格式,以防止未经授权的访问和数据泄露。这些软件通常提供了多种加密算法和安全控制选项,以满足不同企业的安全…

国外访问学者博士后常用的网络视频面试软件

面试是获得邀请函的重要环节,随着网络的广泛应用,现在视频面试逐渐取代了电话面试,本篇知识人网小编介绍几种国外访问学者博士后常用的网络视频软件。 在申请国外博士后或者访问学者职位时,当接收方导师收到CV(简历&am…

postgis上传 上千个资源文件

需求背景所需工具解决流程1. 获取文件名信息2.复制到 excel 表格中3.转成 csv 文件 需求背景 需要把上千个文件资源上传到远端,并建立数据表 所需工具 Notepad 7wps office 11.1.0 解决流程 1. 获取文件名信息 复制文件路径,在 cmd 中进到文件夹&…

Python程序设计基础:列表与元组(二)

文章目录 一、数值列表的生成1、通过input()函数输入创建列表2、通过list()函数转换3、列表生成式4、数值列表的几种统计计算 二、元组1、元组的定义2、元组的操作3、元组作为列表元素 三、转换函数1、元组和列表之间的转换2、字符串和列表之间的转换3、split()方法 一、数值列…

深度学习模型:Pytorch搭建ResNet、DenseNet网络,完成一维数据分类任务

2023.7.17 DenseNet和ResNet都是深度学习中常用的网络结构,它们各有优缺点。 DenseNet的优点是可以充分利用网络中的信息,因为每个层都可以接收来自前面所有层的信息。这种密集连接的结构可以提高网络的准确性,减少过拟合的风险。此外&…

教你一招,动态规划思想

动态规划 什么是动态规划? 动态规划也是算法设计的一种方法/思想。它将一个问题分解为相互重叠的子问题,通过反复求解子问题,来解决原来的问题。 基础案例 场景一 斐波那契数列 当前数等于前面两个数的和。 定义子问题:f(n)…

Python异步网络编程框架Twisted使用方法

Twisted概念 Twisted是一个Python异步网络编程框架,它可以帮助我们开发高性能的网络应用程序。它提供了一些基本概念,如reactor、protocol、transport和factory等,用于构建高效的网络应用程序。 优点: 异步并发处理&#xff1a…

Ceph集群

目录 一、存储概述 1.单机存储设备 1.1 DAS 1.2 NAS 1.3 SAN 2. 单机存储的问题 3. 商业存储解决方案 4.分布式存储(软件定义的存储 SDS) 4.1 分布式存储的类型 二、Ceph简介 1.Ceph 优势 2. Ceph 架构 2.1 RADOS 基础存储系统 2.2 LIBRADOS…

Arch - 多线程设计架构模式

文章目录 概述细节 概述 多线程设计架构模式是一种通过合理地使用线程来提高系统性能和响应能力的设计模式。以下是一些常见的多线程设计架构模式: 线程池模式:通过预先创建一组线程,将任务提交到线程池中执行,避免了线程的频繁创…

Perforce Helix Core新版本推出资源压力感知功能,提升服务器可用性,助力大规模开发

您的版本控制系统帮助团队进行主动监控吗? Perforce Helix Core的客户经常在不同维度上测试规模和性能的极限。其中一些维度包括文件数量、文件大小、用户数和并发事务数量。随着这些维度的压力增加,服务器资源(如内存和CPU)通常…

时刻领先丨PingCAP 用户峰会 2023 圆满收官

7 月 13 日,PingCAP 用户峰会 2023 在北京西南华邑酒店成功举办。 大会有哪些精彩看点,快跟小编来看看吧! 提升中国开源数据库在国际市场的影响力和竞争力 倪光南 中国工程院院士 在全球数字科技创新的浪潮中,数据库作为核心数…

EVO 工具常见使用记录

计算ATE 第一种 evo_ape tum GT_robot_0.txt robot0_estimated.txt --plot --plot_mode xyz --align_origin第二种 evo_ape tum GT_robot_0.txt robot0_estimated.txt --plot --plot_mode xyz -a参数解析 GT pose 跟 estimated pose 文件的相对顺序。先 GT pose 的文件…

Boojum:zkSync的高性能去中心化STARK证明系统

1. 引言 2023年7月17日zkSync官方twitter Say hello to Boojum宣称在不regenesis的情况下,将zkSync Era迁移至Boojum证明系统。 Boojum为STARK证明系统(PlonkFRI),开源代码见: https://github.com/matter-labs/era-…

【kubernetes系列】Kubernetes之调度器和调度过程

Kubernetes之调度器和调度过程 概述 当用户请求向API server创建新的Pod时,API server检查授权、权限等没有任何问题的话,他会把这个请求交由Scheduler,由Scheduler检查所有符合该Pod要求的列表,开始执行Pod调度逻辑&#xff0c…

mongdb基本操作

如果要查看刚刚创建的数据库 创建集合class 将数据插入 进行查找练习 查看班级所有人信息 db.class.find()查看班级中年龄为10岁的学生信息 db.class.find({age:10})查看年龄大于10岁的学生信息 用到范围条件查询 db.class.find({age:{$gt:10}})查看年龄在 4—8岁之间的学…