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

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

bash 复制代码
#!/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注册为服务

bash 复制代码
# 配置系统服务
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
相关推荐
2601_9498477518 分钟前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_6399069419 分钟前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
EnCi Zheng1 小时前
后端怎么把AI接口稳定安全低成本接进业务:超时重试、密钥隔离与成本熔断清单
人工智能·后端·安全·架构·api
Smoothcloud润云2 小时前
GPU远程纳管安全吗?最小权限、网络边界与日志审计实战
服务器·网络·人工智能·安全·gpu算力·gpu
水饺编程2 小时前
第2章:Linux 基础,exit 命令
linux·c语言·汇编
木子欢儿2 小时前
Debian 13 + vsftpd 搭建FTP服务
linux·服务器·前端·网络·debian
长不大的杨瑞杰3 小时前
OpenCode v2 MCP 与插件体系实战:把数据库、工单和内部 API 安全接入 Agent
人工智能·安全·语言模型·软件工程·1024程序员节
GeW4 小时前
新质生产力落地实践:企业级Linux迁移与数据库国产化
linux
雯宝4 小时前
usb_serial_generic_register
linux
万联WANFLOW4 小时前
Kimi K3.1 Pro 接口接入指南:模型选型、费用计算与零数据保留
java·spring boot·python·安全·spring·大模型