Linux(Ubuntu)升级openssh至9.6版本

ops/2024/11/26 15:57:38/

前言:

修复 Openssh 命令注入漏洞(CVE-2020-15778)、OpenSSH ssh-agent远程代码执行漏洞(CVE-2023-38408)、OpenSSH 安全漏洞(CVE-2021-41617)、OpenSSH 信息泄漏漏洞 (CVE-2023-51385)将Openssh升级至9.6p1即可

升级 OpenSSH 版本需要谨慎,特别是生产环境中,卸载旧版本 SSH 可能导致远程无法连接。需要启用 Telnet 作为备用连接方式,确保系统可用性。

安装编译环境:

apt-get install build-essential -y

安装 OpenSSL

OpenSSH 需要依赖 OpenSSL 来提供加密功能,因此必须安装正确版本的 OpenSSL(在此示例中是 OpenSSL 3.2.0)。下载并安装 OpenSSL 后,编译 OpenSSH 时会链接到该版本的 OpenSSL 以确保加密功能正常。 https://www.openssl.org/source/openssl-3.2.0.tar.gz如果下载不下来可以选择我这个上传至服务器 openssl-3.2.0.tar.gz提取码:OP21

cd
wget --no-check-certificate https://www.openssl.org/source/openssl-3.2.0.tar.gz
tar -zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0/
./config --prefix=/usr/local/openssl shared
make
make install

创建软链接确保 OpenSSL 可用

ln -s /usr/local/openssl/lib64/libssl.so.3 /usr/lib/
ln -s /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/#查看一下版本确保可用
/usr/local/openssl/bin/openssl version

安装 Zlib

OpenSSH 使用 Zlib 来压缩 SSH 数据流,依赖它来实现数据的压缩和解压缩,从而提高网络传输效率。

cd 
wget --no-check-certificate http://www.zlib.net/zlib-1.3.1.tar.gz
tar -zxvf zlib-1.3.1.tar.gz
cd zlib-1.3.1/
./configure --prefix=/usr/local/zlib
make
make install#安装 Zlib 库的开发包
apt-get -y install libz-dev

下载 OpenSSH 9.6 

如果下载不了可以选择下载这个上传至服务器OpenSSH 9.6p1提取码:OP21

wget --no-check-certificate https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz

这里使用脚本安装,避免出现卸载旧版本后直接无法和服务器连接的情况

#!/bin/bash# 卸载旧版本 OpenSSH
echo "正在卸载旧版本 OpenSSH..."
apt-get purge --remove "openssh*" -y
killall sshd# 备份旧配置
echo "正在备份 SSH 配置..."
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp -r /etc/ssh /etc/ssh_backup/# 下载 OpenSSH 源码并编译
#创建一个名为 sshd 的用户,用于分离特权操作。
echo "sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin" >> /etc/passwd
echo "下载并安装 OpenSSH..."
#如果上面下载了就给这个下载注释带掉,建议提前下载好
#wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
tar -zxvf openssh-9.6p1.tar.gz
cd openssh-9.6p1
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib-dir=/usr/local/zlib --without-openssl-header-check
make && make install# 配置 root 登录权限
echo "配置允许 root 登录..."
echo "PermitRootLogin yes" >> /etc/ssh/sshd_configecho "手动启动 OpenSSH 服务..."
/usr/local/openssh/sbin/sshd

把新的ssh注册为服务

# 配置系统服务
echo "配置 SSH 为系统服务..."
echo "[Unit]
Description=OpenSSH serve
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target[Service]
ExecStart=/usr/local/openssh/sbin/sshd[Install]
WantedBy=multi-user.targe" > /lib/systemd/system/sshd.service# 重新加载并启动服务
echo "重新加载系统服务并启动 SSH..."
systemctl daemon-reload
systemctl start sshd
systemctl enable sshd


http://www.ppmy.cn/ops/136863.html

相关文章

跨境出海安全:如何防止PayPal账户被风控?

今天咱们聊聊那些让人头疼的事儿——PayPal账户被风控。不少跨境电商商家反馈,我们只是想要安安静静地在网上做个小生意,结果不知道为什么,莫名其妙账户就被冻结了。 但其实每个封禁都是有原因的,今天就来给大家分享分享可能的原…

react 中解决 类型“never”上不存在属性“value”。

在 React 中,当你使用 useState 钩子来管理状态时,TypeScript 会尝试推断你的状态变量的类型。在你的例子中,listchannel 被初始化为一个空数组,因此 TypeScript 推断出 listchannel 的类型是 never[],即一个空数组类型…

排序算法 时间复杂度、空间复杂度

一、时间复杂度 1. 什么是时间复杂度 记为大O,是衡量算法运行效率的重要指标,描述了算法运行所需时间是如何随着输入规模(通常用n来表示)变化的(一般)。也可以说用来表示算法语句总的执行次数随n的增长趋…

44.扫雷第二部分、放置随机的雷,扫雷,炸死或成功 C语言

按照教程打完了。好几个bug都是自己打出来的。比如统计周围8个格子时,有一个各自加号填成了减号。我还以为平移了,一会显示是0一会显示是2。结果单纯的打错了。debug的时候断点放在scanf后面会顺畅一些。中间多放一些变量名方便监视。以及mine要多显示&a…

shell练习

开篇小贴士:为创建的sh(当然可以是任何一个文件)文件添加开头的注释 1、进入到家目录,然后通过 ls -a 查看全部文件 2、找到并编辑一个名为 .vimrc (Vim编辑器的核心配置文件)的配置文件,下图…

学习threejs,使用设置bumpMap凹凸贴图创建褶皱,实现贴图厚度效果

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.MeshPhongMaterial高…

Bitcoin---Script Language;脚本类型

文章目录 概要脚本类型 概要 比特币客户端的软件通过执行交易中包含的脚本(Script)来验证交易的有效性,这些脚本是用类似 Forth 的脚本语言编写的。脚本的特点是易于使用、简洁和基于堆栈的执行引擎,但它是图灵不完备的。比特币的…

仿axios,封装微信小程序的请求

由于小程序中的请求不是非常好用,没有axios好用,所以按照axios封装了一个简易的请求工具。 axiosWechat.js文件 class AxiosWechat {constructor(config {}) {// 设置基础配置this.config {baseUrl: , // 基础路径headers: {}, // 请求头.…