Published on

我把生产服务器干烂了的后续

Authors

之前的情况请移步: https://www.v2ex.com/t/1059898#reply74

升级 OpenSSH 版本总结

感谢

首先,感谢 V 友大佬们的宝贵建议。在整理了大家的建议后,我成功升级了 9 个生产服务器的 OpenSSH 版本。


背景

领导要求升级服务器 OpenSSH 版本,虽然我并不是专职运维,只是一名开发,但由于部门的运维离职且梭哈考公,领导要求尽快修复这个漏洞,我只好自己研究如何升级 OpenSSH。


准备工作

  • 资料搜索:大量搜索相关资料,确保掌握升级的基本步骤与可能遇到的问题。
  • 模拟环境:为了测试升级步骤的通用性,我使用了以下环境进行模拟:
    • Docker 容器
    • WSL2
    • 华为云服务器
    • 虚拟机(Ubuntu、CentOS、RedHat)
    • 自己笔记本上装的 ArchLinux 通过这些测试环境,升级步骤得到了验证,最终升级成功。

升级过程中需要注意的几点

  1. 模拟生产环境:在进行生产环境升级前,尽量模拟相似环境,确保基础软件版本一致。
  2. 与同事沟通:提前通知同事,可能由于升级 SSH,之前写的脚本会出现小问题。
  3. 备份重要配置:升级前备份 SSH 配置文件,以及升级过程中可能涉及的其他库和软件。
  4. 多开几个 SSH 连接:如果有一个 SSH 连接出问题,另一个连接可能还能使用。
  5. 安装 telnet 连接:提前安装 telnet,尽量开多个 telnet 连接,防止 SSH 升级失败后无法远程连接。
  6. 检查基础软件版本:升级前,确认服务器上的 gcc 等基础软件版本,确保与成功案例的版本一致。升级完成后再切换回原有版本,以避免出现其他问题。
  7. 慎用 --nodeps 强制安装:安装 rpm 包时,避免使用 --nodeps 强制安装选项。
  8. 清理无用工具:升级完成并稳定连接一段时间后,可以删除掉 telnet。

复盘 / 感慨 / 忧虑

  • 成就感:9 台服务器成功输出目标版本的 ssh -V,是我本科毕业工作这三个月以来最有成就感的事情。
  • 失败教训:回想上次升级失败的经历,是因为没有深入研究 SSH 升级的正确步骤,盲目升级,结果失败。这次经历提醒我必须充分准备。
  • 成功的侥幸:虽然这次升级成功,但不确定是否是侥幸,可能只是碰巧成功了。仍然对过程充满忐忑。
  • 再次感谢:衷心感谢 V 友们提供的宝贵建议,让我顺利完成了这次任务。