特别注意:
升级openssl及openssh有一定风险,建议在测试环境或UAT环境运行无误后再在生产环境运行。升级过程中请保持活动的连接窗口,切勿中途中断!为避免升级失败无法重连服务器,请复制一个连接窗口以备不时之需,或自行配置Telnet服务预留另一个远程连接通道。
最近更新:
2024-09-10 修复了openssl执行文件替换不彻底的BUG
2024-09-02 更新了对麒麟V10的支持,如有不同版本号的欢迎测试反馈
2024-07-23 修正了6系列pam.d/sshd文件复制错误的BUG
2024-07-18 修改了zlib版本判断逻辑
2024-07-11 临时处理了一下openEuler 22.03 SP3以上版本openssl版本回退的问题
2024-07-05 修复了一个zlib旧版本重复的bug
2024-07-03 修复了部分可能发生的错误
2024-07-02 更新链接到openssl 1.1.1w,openssh到9.8p1
已知问题:
openssh弃用rsa算法,因此xshell 5版本将因为"找不到匹配的host key算法"错误而无法连接
脚本思路
一、脚本原始思路致谢CSDN柒八九
二、脚本支持在 redhat¢os 6.x - redhat¢os 8.x、rocky 8.x、openeuler 20.x-22.x 、 huawei cloud euler 2.x 上运行
三、脚本根据配置好的 openssl、openssh 及 zlib 版本到官网下载相应安装包,无需准备包文件
四、rhel8系列操作系统升级后会导致libssl及libcrypto版本不匹配问题,解决方案是保留旧库文件
五、依赖包的安装使用yum安装,请提前配置好yum源并确保可用
六、脚本暂无回退机制,生产环境请审慎使用,建议在测试环境或镜像重生环境测试无误后再用
七、各步骤思路及注解有空再写
代码语言:txt复制#!/bin/bash
#
############################## 蜈蚣出品 #####################
# Function : openssl openssh update #
# Platform : Centos6.x-8.x & Rocky8.x & openEuler 20.x-22.x #
# Version : 2.6 #
# Date : 2024-09-10 #
#############################################################
#
# RHEL8系列操作系统恢复使用旧库,解决编译安装Openssl出现的libssl及libcrypto版本不匹配问题。
# 使用旧库将导致openssl程序版本号与库版本号不一致的问题,暂无完美解决方法。
#
clear
export LANG="en_US.UTF-8"
date_time=$(date %Y%m%d-%H%M%S)
OLD_IFS=$IFS
IFS=$' '
#
#请根据官方发行的版本号按需要安装的版本修改 <<==================================
zlib_version="zlib-1.3"
openssl_version="openssl-1.1.1w"
openssh_version="openssh-9.8p1"
#源码包链接
zlib_url="https://www.zlib.net/fossils/$zlib_version.tar.gz"
openssl_url="https://www.openssl.org/source/$openssl_version.tar.gz"
openssh_url="https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/$openssh_version.tar.gz"
#安装包路径建议根据安装脚本上传的位置修改 <<==================================
upsslssh_home="/opt/upsslssh"
#默认编译路径
install_path="/usr/local"
#安装目录
install_files="$upsslssh_home/install"
backup_files="$upsslssh_home/backup"
log_files="$upsslssh_home/log"
#需要安装的依赖包
pkg_need="gcc gcc-c glibc make autoconf automake openssl openssl-devel pam pam-devel zlib zlib-devel wget tar pcre-devel"
#输出信息颜色
color_0="