当前位置: 首页 > article >正文

Linux(Ubuntu)升级openssh至9.6版本

前言:

修复 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_config

echo "手动启动 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.kler.cn/a/410539.html

相关文章:

  • Fakelocation Server服务器/专业版 ubuntu
  • docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
  • FreeRTOS之链表源码分析
  • Unity中动态生成贴图并保存成png图片实现
  • Taro React小程序开发框架 总结
  • 替换Nacos的MySQL驱动
  • PyTorch2
  • 树链剖分(重链剖分)
  • ES实用面试题
  • 什么是 C++ 中的类型别名和 using 声明? 如何使用类型别名和 using 声明?
  • 三维测量与建模笔记 - 点特征提取 - 4.5 SURF-FAST-ORB
  • Linux——进程调度与切换
  • 风尚云网前端学习:一个简易前端新手友好的HTML5页面布局与样式设计
  • 《Docker Registry(镜像仓库)详解》
  • vue实现列表滑动下拉加载数据
  • sql server 主从job对比差异
  • python画图|无坐标轴自由划线操作fig.add_artist(lines.Line2D()函数
  • 英伟达推出了全新的小型语言模型家族——Hymba 1.5B
  • 【开发小技巧11】用经典报表实现badge list效果,根据回显内容用颜色加以区分
  • 【SQL Server】华中农业大学空间数据库实验报告 实验八 存储过程
  • MySQL的权限管理机制--授权表
  • 卷积神经网络学习记录
  • linux上的性能观测工具
  • Redis密码设置与访问限制(网络安全)
  • 每日一书 《基于ArcGIS的Python编程秘笈》
  • C#winform:连接mysql,并将数据展示到页面