CentOS 6 手动将OpenSSH升级到9.3

news2024/11/28 10:52:15

前言

收到通知说服务器组件存在漏洞

image

服务器版本:CentOS-6.8-x86_64

目前SSH版本:OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

前置操作

为了避免升级过程中出现的意外导致服务器无法进行连接,建议对重要的内容先进行备份

创建快照

在主机服务商那里为主机创建快照,防止最糟糕的事情发生

备份配置文件

备份 /etc/pam.d/sshd 文件

[root@bogon ~]# cp /etc/pam.d/sshd /etc/pam.d/sshd-bak
[root@bogon ~]# ls -l /etc/pam.d/sshd*
-rw-r--r--. 1 root root 616 May 10  2016 /etc/pam.d/sshd
-rw-r--r--. 1 root root 616 Jul 11 17:52 /etc/pam.d/sshd-bak

安装telnet

升级过程中会卸载旧版本 ssh 导致远程无法连接,所以先安装一个 telnet

安装

#检查是否安装了telnet服务端
rpm -q telnet-server
#检查是否安装了telnet客户端
rpm -q telnet

提示package telnet-server is not installed表示未安装

#安装telnet服务端
yum install telnet-server  -y
#安装telnet客户端
yum install telnet -y

启动

#设置开机启动该 修改 disable = yes 为 disable = no
vim  /etc/xinetd.d/telnet
#打开/重启服务
service  xinetd restart

防火墙开放23端口

#设置防火墙
vim /etc/sysconfig/iptables
#重启防火墙
service iptables restart
#查看状态
service iptables status

使用telnet ip地址进行连接登录

允许root登录

默认系统不允许root用户使用telnet远程登陆

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

可能还需要添加下 pts/3 和 pts/4

输入正确的密码还是不能登录

主机端执行:tail /var/log/secure

看到了access denied: tty 'pts/3' is not secure !

再添加一个

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

重启了telnet后再登录一切正常了

开始升级

执行下方操作前,请确认telnet外部连接正常

下载升级包

可用版本下载

http://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

地址中列出了可用的版本升级文件,我本次计划升级到9.3,使用的是openssh-9.3p1.tar.gz

可以使用本地网络下载压缩包后上传到服务器opt目录,也可以在服务器内执行命令下载

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

安装依赖

安装

务必确认已快照,已配置telnet

备份配置文件

cp /etc/ssh/sshd_config sshd_config.backup
cp /etc/pam.d/sshd sshd.backup

卸载旧版本

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

还原配置文件

mv sshd.backup /etc/pam.d/sshd
mv sshd_config.backup /etc/ssh/sshd_config

添加开机启动

chkconfig --add sshd
chkconfig sshd on

重启sshd 谨慎操作,重启后即断开当前连接

#重启
service sshd restart
#查看版本
ssh -V

成功升级到OpenSSH_9.3p1, OpenSSL 1.0.2k-fips 26 Jan 2017

登录验证,如果出错,可以查看踩坑记录

踩坑记录

#查看登录日志
tail -f /var/log/secure

账号密码错误

未开启root登录

检查/etc/ssh/sshd_config是否存在

PermitRootLogin yes

账户锁定

使用正确的账号密码登录,始终返回账号密码错误

检查root账户是否被锁定 cat /etc/shadow | grep root

root:$6$88xxxxxxxxxxx:::

如果密码前有两个!!(如root:!!$6$884zQxxx)则表示锁定

解除root锁定passwd -u root

Unlocking password for user root.
passwd: Success

WinSCP无法连接

连接被关闭了
无法初始化SFTP协议。主机是SFTP服务器吗?

修改连接配置,将文件协议从SFTP修改为SCP

PS:升级了两台服务器,只有一台有这个问题.这不是一个很好的解决方案,但是我没找到原因(大牛可以指正)

无法登录

在服务器中查看状态service sshd status得到了下面得到Failed记录

Apr 21 09:01:15 bogon sshd[542]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=x.x.x.x  user=root
Apr 21 09:01:15 bogon sshd[542]: pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root"
Apr 21 09:01:16 bogon sshd[542]: Failed password for root from x.x.x.x port 56012 ssh2
Apr 21 09:01:24 bogon sshd[542]: Accepted password for root from x.x.x.x port 56012 ssh2

以下解决方案摘自阿里云

检查这三个配置文件,是否限制了登录(如pam_succeed_if.so uid >= 1000

文件功能说明
/etc/pam.d/login控制台(管理终端)对应的配置文件。
/etc/pam.d/sshdSSH远程登录对应的配置文件。
/etc/pam.d/system-auth系统全局配置文件

如果有限制,注释相关配置,或者修改策略

auth        required      pam_succeed_if.so uid <= 1000      # 修改策略
#auth        required      pam_succeed_if.so uid >= 1000    # 注释相关配置

部分内容转载于 记一次手动将OpenSSH从7.4升级到9.3的过程 (Contos7.9)

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

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

相关文章

Android Studio无法打开问题解决记录

目录 1 问题起因2 发现问题3 解决问题 1 问题起因 问题的起因是我为了运行一个Kotlin项目&#xff0c;但是报了一个错误&#xff1a; Kotlin报错The binary version of its metadata is 1.5.1, expected version is 1.1.16 然后我就上百度去搜了以下&#xff0c;一篇博客让禁用…

GEE:多元线性回归

作者&#xff1a;CSDN _养乐多_ 本文记录了在NDVI、EVI和LAI作为自变量&#xff0c;precipitation作为因变量的条件下&#xff0c;使用linearRegression函数进行线性回归分析的代码&#xff0c;代码在Google Earth Engine&#xff08;GEE&#xff09;平台上实现。具体而言&am…

AI大数据智能视频融合平台EasyCVR新增Ehome黑白名单配置

EasyCVR视频融合平台基于云边端智能协同架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台支持海量视频汇聚管理&#xff0c;可支持多协议接入&#xff0c;包括市场主流标准协议与厂家私有协议及SDK&#xff0c;如&#xff1a;国标GB28181、RTMP、RTSP/Onvi…

Linux 学习记录50(QT篇)

Linux 学习记录50(QT篇) 本文目录 Linux 学习记录50(QT篇)一、基于QT的TCP客户端连接1. 代码实现2. 自制的客户端/服务器 二、QT数据库SQL1. QT将数据库分为三个层次2. 实现数据库操作的相关方法 思维导图练习1.2.3.4. 一、基于QT的TCP客户端连接 所需头文件 <QTcpSocket&g…

3G理论概述

文章目录 UMTS&#xff08;通用移动通信系统&#xff0c;Universal Mobile Telecommunications System&#xff09;UTRAN&#xff08;UMTS陆地无线接入网&#xff0c;UMTS Terrestrial Radio Access Network&#xff09;RNC&#xff08;无线网络控制器&#xff0c;Radio Networ…

music21 层级解析(了解次结构方可将任意曲谱与mid互相转换)

这段代码创建了一个音乐乐谱并将其保存为 MIDI 文件&#xff0c;其中包含一个乐器和多个小节。每个小节中包含四个音符或和弦&#xff0c;然后将小节添加到乐谱中。最后&#xff0c;将乐谱写入 MIDI 文件。 首先&#xff0c;通过导入 music21 库来使用它的功能。 import music2…

onvif库封装及qt工程调用onvif库实现设备搜索、获取码流地址等功能

一、前言&#xff1a; 本篇的OnvifManager工程是在vs2010下进行开发编译&#xff0c;它实现了对onvif库的封装调用&#xff0c;目前工程接口实现了对onvif的搜索、码流地址获取、设备重启接口&#xff0c;其他接口后续可以通过更改工程代码进行添加。qt工程myonvif是对OnvifMan…

Zotero翻译插件“zotero pdf translate”——使用时出现广告的问题的解决办法

一、背景&#xff1a; 在Zotero上安装了“zotero-pdf-translate”插件来辅助翻译。今天忽然发现&#xff0c;在使用CNKI翻译引擎的时候&#xff0c;末尾被加上了广告&#xff1a; (查看名企职位领高薪offer&#xff01;--->智联招聘https***dict.cnki.net/ad.html) 如下&…

【IMX6ULL驱动开发学习】16.睡眠机制_poll机制_fasync异步通知(按键控制LED)

学完了休眠唤醒机制、poll机制、异步通知、定时器、tasklet、工作队列、mmap、input子系统后&#xff0c;该沉淀沉淀了 一、睡眠机制 案例&#xff1a;APP程序读取按键值 - 睡眠机制&#xff08;阻塞或非阻塞&#xff09; 1.等待队列头创建 static DECLARE_WAIT_QUEUE_HEA…

从零实现深度学习框架——带Attentiond的Seq2seq机器翻译

引言 本着“凡我不能创造的,我就不能理解”的思想,本系列文章会基于纯Python以及NumPy从零创建自己的深度学习框架,该框架类似PyTorch能实现自动求导。 要深入理解深度学习,从零开始创建的经验非常重要,从自己可以理解的角度出发,尽量不使用外部完备的框架前提下,实现我…

【Windows】PowerToys - 微软超强生产力工具

Windows用户必看 - 电脑系统增强工具 下载 下载地址 简介 PowerToys 是一组由 Microsoft 创建和维护的开源实用工具集&#xff0c;旨在为 Windows 操作系统提供额外的功能和增强体验。它是为 Windows 10 及更高版本设计的&#xff0c;可帮助用户提高效率、个性化和定制化他们…

apache 安装配置 基础篇(三) 之 虚拟机

apache虚拟主机类型有两种 1、基于名称的虚拟主机 2、基于地址或IP地址的虚拟主机 基于名称的虚拟主机 ## httpd-vhosts.conf 添加如下代码&#xff0c; ## 同时要在httpd.conf中追加监听89端口 Listen 89 ## 修改apache 文件要 在bin路径下面的cmd 录入 httpd -t 检测 代…

centos7搭建postgresql主从(主备)架构

本篇介绍如何在centos7系统搭建一个postgresql主备集群实现最近的HA&#xff08;高可用&#xff09;架构。后续更高级的HA模式都是基于这个最基本的主备搭建。 节点规划 ip 主机名 用途 192.168.182.4 node1 主库&#xff08;读写&#xff09; 192.168.182.5 node2 备库&#…

大神都在用的4个AI绘画工具,记得收藏

AI绘画工具是一种利用人工智能辅助绘画创作的工具&#xff0c;它可以帮助设计师快速绘制高质量的艺术作品。本文列出了国内外4款免费的AI绘画工具&#xff0c;它们使用起来非常简单&#xff0c;而且创作效果非常不错&#xff0c;一起来看看吧&#xff01; 1.即时灵感 即时灵感…

【字符串 简单】LeetCode 14. 最长公共前缀 Java

我的思路&#xff1a; 给字符串数组按照字符串的长度从长到短排序&#xff0c;因为最长公共前缀最长的话&#xff0c;也只能是字符串数组中最短的那一个字符串设置一个index变量&#xff0c;表示当前正在检查字符数组中所有字符串的index位置循环遍历字符串数组n遍&#xff0c…

Java设计模式之结构型-桥接模式(UML类图+案例分析)

目录 一、基础概念 二、UML类图 三、角色分析 四、案例分析 1、支付方式 2、支付渠道 五、总结 一、基础概念 桥接模式&#xff08;Bridge Pattern&#xff09;是一种结构型设计模式&#xff0c;其主要目的是“将抽象部分与实现部分分离&#xff0c;使它们都可以独立地…

微信小程序扫码邀请,小程序码生成带参数

代码一&#xff1a; public String generateQRCode(String appId, String appSecret, String pagePath) throws IOException {String accessToken getAccessToken(appId, appSecret);String apiUrl "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token&qu…

springboot家乡特色推荐系统

本次设计任务是要设计一个家乡特色推荐系统&#xff0c;通过这个系统能够满足家乡特色文章的管理功能。系统的主要功能包括首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;文章分类管理&#xff0c;文章分享管理&#xff0c;系统管理等。 管理员可以根据系统给定的账…

前端工程化与webpack

一、目标 能够说出什么是前端工程化能够说出webpack的作用能够掌握webpack的基本使用了解常用plugin的基本使用了解常用loader的基本使用能够说出Source Map的作用 二、目录 前端工程化webpack的基本使用webpack中的插件webpack中的loader打包发布Source Map 1.前端工程化 …