银河麒麟v10 升级 SSH由8.2到9.9
根据您提供的 yum check-update 输出结果,情况如下:
结论: 您的系统官方源中目前没有更新的 OpenSSH 版本。
- 当前版本:
8.2p1 - 源中最新版本:
8.2p1-16.p27.ky10
虽然版本号相同,但这是一个针对麒麟系统的修订版。它可能包含部分安全补丁(Backport),但通常无法修复像 CVE-2020-15778 这种涉及代码逻辑变更的漏洞。
因此,为了彻底修复漏洞,您需要采用 源码编译安装 的方式将 OpenSSH 升级到最新的稳定版(建议 9.9p2 或更高)。
🚀 升级操作指南 (CentOS/Kylin V10)
由于涉及到底层核心组件升级,请务必严格按照以下步骤操作。
⚠️ 第一阶段:准备工作与备份 (至关重要)
严重警告:
- 不要关闭当前的 SSH 窗口! 请新开一个窗口进行测试,确保新服务正常后再关闭旧窗口。
- 建议开启 Telnet 服务或通过 VNC/IPMI 控制台操作,以防升级失败导致无法远程连接。
-
安装编译依赖:
sudo yum install -y gcc make zlib-devel openssl-devel pam-devel systemd-devel wget tar -
备份现有文件:
# 备份配置文件 sudo cp -r /etc/ssh /etc/ssh.bak.$(date +%F) # 备份二进制文件 sudo cp /usr/bin/ssh /usr/bin/ssh.bak sudo cp /usr/sbin/sshd /usr/sbin/sshd.bak
📥 第二阶段:下载与编译
-
下载最新源码包: 我们将下载最新的 OpenSSH 9.9p2(修复了您提到的漏洞及后续多个高危漏洞)。
cd /tmp wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p2.tar.gz tar -zxf openssh-9.9p2.tar.gz cd openssh-9.9p2 -
编译与安装: 注意配置参数,确保兼容麒麟系统的 PAM 认证和 Systemd 管理。
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/lib64 --with-zlib --with-pam --with-systemd make sudo make install
🔧 第三阶段:配置与服务替换
-
修正配置文件权限: 新版本可能会生成新的配置示例,我们需要确保主配置文件允许 Root 登录(除非您有专门的普通用户)。
# 检查配置文件中 PermitRootLogin 是否为 yes sudo sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config # 如果是密码登录,确保 PasswordAuthentication 为 yes sudo sed -i 's/#PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config -
替换 Systemd 服务文件: 这是最关键的一步,否则
systemctl restart sshd可能会失败。# 复制官方提供的 systemd 文件 sudo cp contrib/redhat/sshd.init /etc/init.d/sshd sudo chmod +x /etc/init.d/sshd # 如果存在旧的 systemd 服务文件,建议移除或覆盖(视具体系统情况而定) # 这里我们尝试直接重启服务 -
重启 SSH 服务:
sudo systemctl daemon-reload sudo systemctl restart sshd
✅ 第四阶段:验证
-
检查版本: 在新开的终端窗口执行:
ssh -V如果显示
OpenSSH_9.9p2,则说明升级成功。 -
清理: 确认无误后,可以删除
/tmp下的源码包。
💡 补充说明
如果您觉得编译安装风险太大,且该服务器不对外网开放,您可以暂时维持现状,但建议结合之前的方案二(临时缓解),即重命名 /usr/bin/scp,以阻断最直接的漏洞利用途径。