暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OpenSSH源码离线一键升级脚本分享(含安装包)

正文开始

相逢即是缘,关注⭐星标不错过~,每天分享实操教程和技巧。

 

查看当前的版本

[root@myoracle ~]#ssh -V
在这里插入图片描述

相关安装包下载地址

openssh下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

openssl下载地址:https://www.openssl.org/source/

zlib下载地址:http://www.zlib.net/

今天演示从7.4升级到9.9,其他的大家可以自行替换安装包和脚本中的名称即可。

一、脚本内容:

#!/bin/bash
# OpenSSH 离线升级一键脚本(v9.9p1)


# 检查执行权限
if [[ "$(whoami)" != "root" ]]; then
    echo -e "\033[31m错误:必须使用 root 用户执行此脚本!\033[0m" >&2
    exit 1
fi

# 环境检查
check_environment() {
    echo -e "\n\033[34m[1/7] 正在检查系统环境...\033[0m"
    if ! grep -q "CentOS Linux 7.9" /etc/redhat-release; then
        echo -e "\033[31m错误:仅支持 CentOS 7 操作系统!\033[0m"
       # exit 1
    fi
    
    if [ "$(uname -m)" != "x86_64" ]; then
        echo -e "\033[31m错误:仅支持 64 位系统!\033[0m"
        exit 1
    fi
    echo -e "\033[32m环境检查通过\033[0m"
}

# 安装依赖包
install_dependencies() {
    echo -e "\n\033[34m[3/7] 安装基础依赖...\033[0m"
    cd /opt
    tar -xvf yilai.tar.gz
    rpm -ivh *.rpm --nodeps --force
    echo -e "\033[32m依赖包安装完成\033[0m"
}

# 编译安装 zlib
build_zlib() {
    echo -e "\n\033[34m[4/7] 编译安装 zlib...\033[0m"
    cd /opt
    tar -xvf zlib-1.3.1.tar.gz
    cd zlib-1.3.1
    ./configure --prefix=/usr/local/zlib
    make && make install
    echo'/usr/local/zlib/lib' >> etc/ld.so.conf
    ldconfig -v
}

# 编译安装 OpenSSL
build_openssl() {
    echo -e "\n\033[34m[5/7] 编译安装 OpenSSL...\033[0m"
    cd /opt
    tar -xvf openssl-1.1.1o.tar.gz
    cd openssl-1.1.1o
    ./config --prefix=/usr/local/ssl -d shared
    make && make install
    echo'/usr/local/ssl/lib' >> etc/ld.so.conf
    ldconfig -v
}

# 安装 OpenSSH
install_openssh() {
    echo -e "\n\033[34m[6/7] 升级 OpenSSH 到 v9.9p1...\033[0m"
    # 卸载旧版本
    rpm -e --nodeps openssh-server openssh openssh-clients 2>/dev/null
    
    # 编译安装
    cd /opt
    tar -xvf openssh-9.9p1.tar.gz
    cd openssh-9.9p1
    ./configure --prefix=/usr/local/openssh \
        --with-zlib=/usr/local/zlib \
        --with-ssl-dir=/usr/local/ssl
    make && make install

    # 配置文件
    echo'PermitRootLogin yes' >> usr/local/openssh/etc/sshd_config
    echo'PubkeyAuthentication yes' >> usr/local/openssh/etc/sshd_config
    echo'PasswordAuthentication yes' >> usr/local/openssh/etc/sshd_config
    cp /usr/local/openssh/etc/sshd_config etc/ssh/sshd_config
    echo'HostKeyAlgorithms ssh-rsa,ssh-dss ' >> etc/ssh/sshd_config
    # 替换系统命令(修复关键点)
    if [ -f usr/sbin/sshd ]; then
        mv /usr/sbin/sshd usr/sbin/sshd.bak
    fi
    cp -f usr/local/openssh/sbin/sshd usr/sbin/sshd  # 使用新编译的二进制文件

    # 修复权限
    chmod 755 usr/sbin/sshd
    cp /usr/local/openssh/bin/ssh-keygen usr/bin/ssh-keygen

    # 复制 ssh 命令
    cp /usr/local/openssh/bin/ssh usr/bin/ssh
    chmod 755 usr/bin/ssh

    # 启动脚本
    cp -p contrib/redhat/sshd.init etc/init.d/sshd
    chmod +x etc/init.d/sshd
    chkconfig --add sshd
    chkconfig sshd on
}

# 最终验证
final_check() {
    echo -e "\n\033[34m[7/7] 执行最终检查...\033[0m"
    systemctl daemon-reload
    systemctl restart sshd
    ssh -V 2>&1 | grep -q "OpenSSH_9.9p1"
    
    if [ $? -eq 0 ]; then
        echo -e "\033[32m升级成功!当前SSH版本:$(ssh -V 2>&1)\033[0m"
        echo -e "\033[33m警告:请通过新SSH端口连接确认无误后,再关闭Telnet服务!\033[0m"
    else
        echo -e "\033[31m错误:升级失败,请检查日志!\033[0m"
        exit 1
    fi
}

# 主执行流程
main() {
    check_environment
    install_dependencies
    build_zlib
    build_openssl
    install_openssh
    final_check
}

# 执行主函数
main

二、使用说明

文件准备:
将以下文件放在 /opt 目录:

/opt/
├── yilai.tar.gz # 包含所有依赖的RPM包
├── openssh-9.9p1.tar.gz
├── openssl-1.1.1o.tar.gz
├── zlib-1.3.1.tar.gz

将以上脚本编写为upgrade_openssh.sh

赋予权限执行即可。

[root@myoracle ~]#chmod +x upgrade_openssh.sh
[root@myoracle ~]#./upgrade_openssh.sh

验证升级

[root@myoracle ~]#ssh -V  # 应显示 "OpenSSH_9.9p1"
[root@myoracle ~]#systemctl status sshd

在这里插入图片描述

重启验证

[root@myoracle ~]#reboot
在这里插入图片描述

三、离线安装包下载

通过网盘分享的文件:openssh
链接: https://pan.baidu.com/s/1_Y2X293ZBDf3DssrO_oUTw 
提取码: cr33

 



往期推荐:
【全网首发】DeepSeek-R1本地部署全攻略:1.5B到671B,三系统配置一网打尽!
独家揭秘!Linux 服务器零网络搭建 DeepSeek - R1+WEB页面(多种方式),速建专属离线知识库,附安装包领取攻略
在Windows离线部署DeepSeek R1模型并打造专属的AI知识库
DeepSeek爆了,普通人如何7小时完全从0训练自己的大模型
给小白1天学会DeepSeek的锦囊:从零到技术实战

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!


END
往期文章回顾
文中的部分图片和概念来源于互联网,如有侵权,请联系我删除。

欢迎关注公众号:智能运维护航舰,致力于数字政府、智慧城市领域的运维知识和经验分享,专注于自动化、智能化、数字化的运维能力发展,提供各类技术支持服务。


文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论