首页 > 系统相关 >CentOS/Ubuntu 源码编译安装升级 OpenSSH v8.9

CentOS/Ubuntu 源码编译安装升级 OpenSSH v8.9

时间:2022-10-19 14:48:28浏览次数:80  
标签:CentOS -- OpenSSH etc 源码 ssh install

CentOS/Ubuntu 源码编译安装升级 OpenSSH v8.9

原创 staugur SaintIC 2022-06-29 12:22 发表于北京

前言

由于一次大规模安全演示扫描到一些 Linux 系统存在很多 OpenSSH 相关漏洞, 按照扫描建议,很多都建议升级到高版本(yum/apt无法更新到最新),索性直接升级到 v8.9。

实验系统:CentOS 7.9

当前版本:OpenSSH 7.4p

准备

请到 OpenSSH官网 下载8.9的软件包

官网不算很清晰,我们的系统是 CentOS,在网页左侧找到 'For other systems' 中的 'Releases', 点击进入,页面中有 'Installation instructions' 安装指导(也就是软件包内也的INSTALL), 页面再往下有 'Download' 下载链接,可以自行选择下载方式,以国内阿里云镜像为例:https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz

由安装指导中,第一条 'Prerequisites' 得知依赖的 OpenSSL 版本 1.0.x >= 1.0.1 or 1.1.0 >= 1.1.0g or any 1.1.1 皆可,我系统中版本是 1.0.2k,满足要求,不用升级 OpenSSL。

手动升级操作

1. 准备软件包

从 '准备' 一节中可以下载到 openssh v8.9 的软件包,任意方式上传到服务器或在服务器 wget/curl 直接下载。

2. 安装依赖包

CentOS/RHEL系列:

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

Ubuntu/Debian系列:

apt update && apt install -y build-essential libssl-dev libz-dev libpam-dev

3. 解压

tar zxf openssh-8.9p1.tar.gz
cd openssh-8.9p1

4. 编译

./configure -h

参数很多,含义可以看help提示,我们直接覆盖安装(覆盖系统本身版本的命令),配置目录还是/etc/ssh,编译如下:

./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-zlib --with-ssl-engine
make

5. 安装

上述编译通过后,可以执行install安装命令工具,这一步会覆盖原来的ssh相关命令,由于安装会生成新的key等等, 存在配置目录会失败,我们直接备份原/etc/ssh配置目录:

mv /etc/ssh /etc/ssh.old
make install

6. 配置

现在已经升级到新版本了,它的服务配置文件也需要修改,否则重启服务会卡死超时导致失败:

cp -f /etc/ssh.old/sshd_config /etc/ssh/
sed -i 's/Type=notify/Type=simple/' /lib/systemd/system/sshd.service || sed -i 's/Type=notify/Type=simple/' /lib/systemd/system/ssh.service
systemctl daemon-reload
systemctl restart sshd

7. 完成

升级完成,查看版本:

ssh -V

自动升级操作

本节shell函数封装了上述手动操作步骤,适用于 CentOS(Ubuntu系统请注释 yum install 那一行,并取消 apt install 那一行的注释)。

用法:

  1. 下载软件包(或手动上传):
wget -c https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-8.9p1.tar.gz
  1. 将下方 _upgrade_ssh 整个函数块粘贴到系统后,执行 _upgrade_ssh 即可完成更新(执行时确保与上面软件包位于同目录):
_upgrade_ssh() {
    set -e
    if [ "$(id -u)" != "0" ]; then
        echo "Please run as root"
        exit 128
    fi
    # 安装依赖包
    # CentOS/RHEL
    yum install -y gcc openssl-devel zlib-devel pam-devel
    # Ubuntu
    #apt update && apt install -y build-essential libssl-dev libz-dev libpam-dev

    # 解压、编译、安装
    tar zxf openssh-8.9p1.tar.gz
    cd openssh-8.9p1
    ./configure --prefix=/usr/ --sysconfdir=/etc/ssh/ --with-pam --with-zlib --with-ssl-engine
    make
    mv -f /etc/ssh /etc/ssh.old
    make install

    # 还原配置文件
    cp -f /etc/ssh.old/sshd_config /etc/ssh/
    # 修改、重载服务
    sed -i 's/Type=notify/Type=simple/' /lib/systemd/system/sshd.service || sed -i 's/Type=notify/Type=simple/' /lib/systemd/system/ssh.service || false
    systemctl daemon-reload
    systemctl restart sshd
    ssh -V
    echo "Upgrade OpenSSH: successfully"
    set +e
    return 0
}

引用

  • centos 如何升级 openssh

温馨提示

升级 OpenSSH 属于危险操作(对于远程管理),建议先在测试机测试后进行,同时建议保留多种登录方式,以及升级中多开一个窗口。


·End·

 

staugur

赞赏二维码喜欢作者

阅读原文 阅读 16 SaintIC 32篇原创内容     写下你的留言      

标签:CentOS,--,OpenSSH,etc,源码,ssh,install
From: https://www.cnblogs.com/cherishthepresent/p/16806148.html

相关文章

  • OpenSSH和OpenSSL升级至最新
    OpenSSH和OpenSSL升级至最新原创 运维鹅 运维鹅 2020-05-0711:58一、需求生产环境有很多服务器漏扫发现了OpenSSH和OpenSSL的漏洞,修复的方法基本都是升级。注......
  • vue源码分析-动态组件
    前面花了两节的内容介绍了组件,从组件的原理讲到组件的应用,包括异步组件和函数式组件的实现和使用场景。众所周知,组件是贯穿整个Vue设计理念的东西,并且也是指导我们开发的......
  • 基于深度学习的自动车牌识别(详细步骤+源码)
    作者| Sanyam翻译 |OpenCV与AI深度学习导读本文将重点介绍ALPR的端到端实现。它将侧重于两个过程:车牌检测和检测到的车牌的OCR。(公众号:OpenCV与AI深度学习) 背景介......
  • 红帽首席架构师:CentOS Stream 并非要革了 CentOS 的“命”
    自从红帽宣布 ​CentOS 将停止更新,并以全新的CentOSStream彻底取而代之;开源社区有关​​红帽这一举措的疑惑就层出不穷。对此,红帽首席架构师张家驹于近期进行了答疑,对......
  • Centos8中如何使用Chrony同步时间
    在Linux服务器中如果我们希望所有Linux服务器都具有正确的时间,则必须配置一些NTP客户端,该客户端将始终从远程NTP服务器获取正确的时间。安装chrony使用下面​​命令​​​在......
  • Transformer源码
    title:Transformer源码date:2022-10-0918:30:35mathjax:truetags:EncoderDecoderTransformerTransformer代码(源码Pytorch版本)从零解读(Pytorch版本)_哔哩......
  • 干货分享 | Shader 实现 PPT 转场效果(附源码)
    知乎上看到一位大佬用Shader实现了PPT里面的转场效果,转载大佬的文章,一起围观膜拜一下。原文分为上下两篇,详细阐述了每个效果的实现。上篇:https://zhuanlan.zhihu.com/p/......
  • centos 7 安装mysql 5.7失败 出现 Retrieving key from file:///etc/pki/rpm-gpg/RPM-
    Publickeyformysql-community-common-5.7.40-1.el7.x86_64.rpmisnotinstalled(1/5):mysql-community-common-5.7.40-1.el7.x86_64.rpm|311kB00:01......
  • postgresql13源码安装部署
    环境:Os:Centos7DB:13.81.下载安装介质下载地址:源码下载地址:https://www.postgresql.org/ftp/source/二进制下载地址(新版本的没有二进制下载,只能使用源码安装):http......
  • centos安装jenkins
    jenkins官网:https://pkg.jenkins.io/redhat-stable/ 步骤:1.sudowget-O/etc/yum.repos.d/jenkins.repohttps://pkg.jenkins.io/redhat-stable/jenkins.repo--no-ch......