【Linux】ssh升级到最新版本-以ubuntu为例

前言

相信大家在运维的时候,会扫描到ssh的历史漏洞,这个时候要么对ssh进行升级,要么采用网络白名单的方式解决。

如果是内部扫描的机器,就不能加黑名单了,只能升级。

虽然ssh的漏洞利用难度较高,但是如绿盟rsas的扫描报告都会有很多CVE漏洞,为了满足合规要求,

tips:

  1. 不要卸载旧版本 :不要直接 rpm -e 或 apt remove 现有的 OpenSSH。我们将在新路径下安装新版,并保留旧版作为备用。

  2. 保留旧 SSH 服务运行 :在确认新版配置无误并能正常工作前,让旧的 sshd 继续监听默认的 22 端口。

  3. 新版本使用不同端口测试 :先让新版 sshd 监听一个临时端口(如 2222),测试成功后再切换。

  4. 备份现有配置

    bash 复制代码
    sudo cp -r /etc/ssh /etc/ssh.bak_$(date +%F)

1:准备编译环境

我的环境是ubuntu 24,

bash 复制代码
sudo apt update
sudo apt install -y build-essential zlib1g-dev libssl-dev libpam0g-dev libkrb5-dev libedit-dev libselinux1-dev

2.下载源代码

打开这个链接(里面都是稳定版),目测一下,选择下载一个最新的即可:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/

比如我是下载10.1,

bash 复制代码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.2p1.tar.gz

我们把openssh安装到/usr/local/openssh中,避免与系统的冲突,

bash 复制代码
# 解压源码
tar -zxvf openssh-10.2p1.tar.gz
cd openssh-10.2p1/

# 配置编译选项
./configure \
    --prefix=/usr/local/openssh \
    --sysconfdir=/etc/ssh \
    --with-pam \
    --with-zlib \
    --with-ssl-dir=/usr \
    --with-privsep-path=/var/lib/sshd \
    --with-privsep-user=sshd

执行结果如下:

3.编译和安装

bash 复制代码
# 编译
make -j$(nproc)

# 安装
sudo make install

5. 创建sshd用户和目录

bash 复制代码
# 创建sshd用户
sudo useradd -r -s /bin/false -d /var/lib/sshd sshd

# 创建必要目录
sudo mkdir -p /var/lib/sshd
sudo chown sshd:sshd /var/lib/sshd
sudo chmod 700 /var/lib/sshd

6. 备份和替换系统文件

bash 复制代码
# 备份原有文件
sudo cp /usr/bin/ssh /usr/bin/ssh.backup
sudo cp /usr/bin/ssh-keygen /usr/bin/ssh-keygen.backup
sudo cp /usr/sbin/sshd /usr/sbin/sshd.backup

# 替换为新版本
sudo cp /usr/local/openssh/bin/ssh /usr/bin/
sudo cp /usr/local/openssh/bin/ssh-keygen /usr/bin/
sudo cp /usr/local/openssh/sbin/sshd /usr/sbin/

7. 更新systemd服务文件

bash 复制代码
# 编辑ssh服务文件
sudo systemctl edit ssh

# 在编辑器中添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS

8. 重启SSH服务

bash 复制代码
# 重启服务
sudo systemctl restart ssh

# 检查服务状态
sudo systemctl status ssh

9. 验证安装

检查版本,输出为10.2,表明已经成功了:

bash 复制代码
ssh -V
bash 复制代码
ssh localhost
相关推荐
程序员-Benothing8 小时前
Linux安全加固指南:账号、权限、服务、审计基线
linux·运维·安全
Mininglamp_27188 小时前
接口调用 vs 屏幕理解:两种 GUI 自动化架构的技术取舍
运维·架构·自动化
爱喝水的鱼丶11 小时前
SAP-ABAP:ECC→S/4HANA ABAP 迁移升级指南——程序改造、语法兼容与性能优化 导语
运维·开发语言·性能优化·sap·abap·经验交流·开发交流
木子欢儿11 小时前
openconnect Linux客户端安装 以及开机自启和登录
linux·运维·服务器
..Dauntless..11 小时前
【Linux】文件系统(一)
linux·运维·服务器
天空属于哈夫克311 小时前
企业微信API二次开发 赋能私域运营自动化
运维·自动化·企业微信
天远API12 小时前
零信任架构实战:基于天远运营商二要素V即时版构建自动化分时租赁出行会员身份一致性审核网关
运维·人工智能·架构·自动化
极光通讯12 小时前
液冷服务器对内存和SSD的适配要求:高密度部署下的散热与信号完整性
运维·服务器
2501_9377671614 小时前
面向设计 / 研发部门:终端文件统一归档 + 服务器定时备份实践
运维·安全
GeW14 小时前
新质生产力路线图:从Linux到数据库,企业落地要点都在这
linux