centos ssh一键升级到9.8版本脚本

背景

前端时间暴露出ssh漏洞,需要将服务器ssh版本,目前ssh版本最新版为9.8,故在服务器测试,准备将所有服务器ssh版本升级。脚本在centos7.6上亲测可用。
#!/bin/bash
#Author Mr zhang

ECHO_GREEN()
{
  echo -e "\033[32m $1...\033[0m"
}

ECHO_RED()
{
  echo -e "\033[31m $1...\033[0m" 
}
ECHO_PURPLE()
{
  echo -e "\033[35m $1...\033[0m"
}

function InstallLib(){
    yum -y install  gcc wget zlib-devel pam-devel libselinux-devel 
}

function InstallSsl(){
    ECHO_GREEN "start to install ssl"
    yum remove openssl -y 
    wget wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1w.tar.gz
    tar axf openssl-1.1.1w.tar.gz
    cd openssl-1.1.1w && ./config --prefix=/usr
    make && make install
    cd ..
    SslVersion=$(openssl version)
    ECHO_GREEN "ssl : ${SslVersion} install finished!"

}

function InstallSshd(){
    mkdir /home/ssh
    cp /etc/ssh/sshd_config /home/ssh/sshd_config.bak
    cp /etc/pam.d/sshd /home/ssh/sshd.bak
    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
    # remove origin sshd
    rpm -e --nodeps `rpm -qa | grep openssh`
    rpm -qa openssh
    tar axf openssh-9.8p1.tar.gz
    cd openssh-9.8p1
    ./configure --prefix=/usr/local/openssh9.8p1 --exec-prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-selinux --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl --without-hardening
    make && make install
    chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key
    cd ..
    cp -a ./openssh-9.8p1/contrib/redhat/sshd.init /etc/init.d/sshd
    chmod u+x /etc/init.d/sshd
    cp /home/ssh/sshd_config.bak /etc/ssh/sshd_config
    cp /home/ssh/sshd.bak /etc/pam.d/sshd
    chkconfig --add sshd
    chkconfig sshd on
    # 去掉注释
    sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
    sed -i 's/#PermitRootLogin yes/PermitRootLogin yes/' /etc/ssh/sshd_config
    sed -i 's/#UseDNS no/UseDNS no/' /etc/ssh/sshd_config
    sed -i '$a\# 在行尾增加",ecdh-sha2-nistp521",以满足ecdsa公钥方式登录(密钥长度521)'  /etc/ssh/sshd_config
    sed -i '$a\KexAlgorithms curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group14-sha1'  /etc/ssh/sshd_config
    sed -i '$a\# 增加",ssh-rsa",以满足RSA 登录'  /etc/ssh/sshd_config
    sed -i '$a\HostKeyAlgorithms ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa'  /etc/ssh/sshd_config
    sed -i '$a\PubkeyAcceptedKeyTypes ssh-ed25519,ssh-ed25519-cert-v01@openssh.com,rsa-sha2-256,rsa-sha2-512,ssh-rsa'  /etc/ssh/sshd_config
    systemctl restart sshd


}

UpToVersion="OpenSSH_9.8p1"
#注意:升级前与一台服务器做好免密登陆
CurVersion=$(ssh -V 2>&1 | awk -F "," '{print $1}')
ECHO_GREEN "current ssh version is: ${CurVersion}"
if [[ ${CurVersion} !=  ${UpToVersion} ]];then
    ECHO_GREEN "continue"
    ECHO_GREEN " start to update ,please wait----"
    InstallLib
    InstallSsl
    InstallSshd
    ECHO_GREEN "sshd install success!"
else
    ECHO_GREEN "no need to update"
    ECHO_GREEN "skip"
fi

升级后影响

1.升级ssh过程中需要升级openssl,可能会导致nginx等服务不可用,升级需谨慎,慎重!!

2.可能会导致sftp不可用

解决方法

[root@localhost ~]# find / -name sftp-server
/usr/libexec/sftp-server
#将配置文件sshd Subsystem sftp 修改为上述结果 例如:
[root@localhost ~]# cat /etc/ssh/sshd_config | grep Subsystem 
Subsystem	sftp	/usr/libexec/sftp-server

3.有可能会修改环境变量,导致 /usr/local/bin下的可执行文件不可用
解决方法

#修改/etc/profile 增加
[root@localhost ~]# cat /etc/profile| grep export 
export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

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

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

相关文章

填报高考志愿,怎样正确地选择大学专业?

大学专业的选择,会关系到未来几年甚至一辈子的发展方向。这也是为什么很多人结束高考之后就开始愁眉苦脸,因为他们不知道应该如何选择大学专业,生怕一个错误的决定会影响自己一生。 毋庸置疑,在面对这种选择的时候,我…

Keycloak SSO 如何验证已添加的 SPN 是否生效

使用 Kerberos Ticket 验证: 在客户端计算机上,运行以下命令以获取 Kerberos Ticket: klist检查是否存在与 HTTP/yourdomain.com 相关的票证。如果存在,说明 SPN 已生效。 测试应用程序: 使用具有 HTTP/yourdomain.com…

windows USB 设备驱动开发-控制传输的数据包

每次在主机控制器和 USB 设备之间移动数据时,都会发生传输。 通常,USB 传输可大致分为控制传输和数据传输。 所有 USB 设备都必须支持控制传输,并且可以支持用于数据传输的端点。 每种类型的传输都与设备缓冲区USB 端点 的类型相关联。 控制传…

Linux 查看磁盘是不是 ssd 的方法

lsblk 命令检查 $ lsblk -d -o name,rota如果 ROTA 值为 1,则磁盘类型为 HDD,如果 ROTA 值为 0,则磁盘类型为 SSD。可以在上面的屏幕截图中看到 sda 的 ROTA 值是 1,表示它是 HDD。 2. 检查磁盘是否旋转 $ cat /sys/block/sda/q…

北京十大拆迁律师事务所排名

历史时刻在重演,土地征地拆迁作为城市发展中不可或缺的环节备受地方政府重视。然而,在土地征收过程中,往往因为拆迁补偿引发各种纠纷案件,给拆迁方和被拆迁方带来重大损失,侵害双方利益,尤其是被征收人。因…

CentOS修复OpenSSH漏洞升级到openssh 9.7 RPM更新包

在做政府和学校单位网站时,经常需要服务器扫描检测,经常被OpenSSH Server远程代码执行漏洞(CVE-2024-6387)安全风险通告,出了报告需要升级OpenSSH。 使用yum update openssh是无法更新到最新的,因为系统里的…

YOLOX算法实现血细胞检测

原文:YOLOX算法实现血细胞检测 - 知乎 (zhihu.com) 目标检测一直是计算机视觉中比较热门的研究领域。本文将使用一个非常酷且有用的数据集来实现YOLOX算法,这些数据集具有潜在的真实应用场景。 问题陈述 数据来源于医疗相关数据集,目的是解决血细胞检测问题。任务是通过显微…

谷粒商城学习-09-配置Docker阿里云镜像加速及各种docker问题记录

文章目录 一,配置Docker阿里云镜像加速二,Docker安装过程中的几个问题1,安装报错:Could not resolve host: mirrorlist.centos.org; Unknown error1.1 检测虚拟机网络1.2 重设yum源 2,报错:Could not fetch…

给我的 IM 系统加上监控两件套:【Prometheus + Grafana】

监控是一个系统必不可少的组成部分,实时,准确的监控,将会大大有助于我们排查问题。而当今微服务系统的话有一个监控组合很火那就是 Prometheus Grafana,嘿你别说 这俩兄弟配合的相当完美,Prometheus负责数据采集&…

MyBatis入门程序详解

目录 一、MyBatis概述 二、编写MyBatis入门程序 三、配置SQL提示 四、传统jdbc的劣势 一、MyBatis概述 MyBatis是一个基于Java的持久层框架,它内部封装了JDBC操作,使得开发人员可以更专注于SQL语句本身而非繁琐的JDBC操作细节。在MyBatis中&#xff0…

LLM - 词向量 Word2vec

1. 词向量是一个词的低维表示,词向量可以反应语言的一些规律,词意相近的词向量之间近乎于平行。 2. 词向量的实现: (1)首先使用滑动窗口来构造数据,一个滑动窗口是指在一段文本中连续出现的几个单词&#x…

逻辑这回事(八)---- 时钟与复位

时钟设计总结 时钟和复位是FPGA设计的基础,本章总结了一些逻辑时钟复位设计、使用中出现的问题,给出了设计要点,避免后续问题重犯。时钟和复位,本文都先从板级谈起,再到FPGA芯片级,最后到模块级别。仅在此…

Java需要英语基础吗?

Java编程语言本身并不要求必须有很强的英语基础,因为Java的语法和逻辑是独立于任何特定语言的。我收集归类了一份嵌入式学习包,对于新手而言简直不要太棒,里面包括了新手各个时期的学习方向编程教学、问题视频讲解、毕设800套和语言类教学&am…

Nginx的安装与配置 —— Linux系统

一、Nginx 简介 1.1 什么是 Nginx Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务…

部署AI平台-Ollama

介绍 llama:LLaMA(Large Language Model Meta AI)是由 Meta(原Facebook公司)发布的一系列大型语言模型。这些模型旨在处理和生成自然语言文本,能够执行多种任务,如文本摘要、翻译、问答、文本生成等。LLaMA 模型因其高效的性能和较小的模型尺…

网络安全设备——蜜罐

网络安全设备蜜罐(Honeypot)是一种主动防御技术,它通过模拟真实网络环境中的易受攻击的目标,以吸引和监测攻击者的活动。具体来说,蜜罐是一种虚拟或实体的计算机系统,它模拟了一个真实的网络系统或应用程序…

【C语言】字符函数和字符串函数的介绍和模拟实现

介绍处理字符和字符串的库函数的使用和注意事项 求字符串长度 strlen 长度不受限制的字符串函数 strcpy strcat strcmp 长度受限制的字符串函数介绍 strncpy strncat strncmp 0. 前言 C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的&am…

数据分析:基于STAR+FeatureCounts的RNA-seq分析全流程流程

流程主要包含两部分组成: 第一部分:二代测序数据的Raw data的fastq文件转换成Gene Count或者Features Counts表(行是Features,列是样本名);第二部分:对counts 表进行统计分析,并对其…

使用 C# 和 CefSharp 构建的全功能且快速的 Web 浏览器

SharpBrowser项目介绍 使用 C# 和 CefSharp 构建的全功能且快速的 Web 浏览器:SharpBrowser。 SharpBrowser是一个基于高性能的CefSharp渲染器的开源C# Web浏览器,采用MIT许可证。相较于Google Chrome,它在渲染网页时略有提升速度。该项目选…

Open3D 在点云中构建八叉树

目录 一、概述 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2构建后点云 一、概述 八叉树(Octree)是一种树状数据结构,用于递归地将3D空间分割成较小的立方体。八叉树特别适用于3D计算机图形学、点云处理和空间…