Skip to content

产品介绍

SSH-Go 是一款基于 Go 语言开发的自动化 SSH 升级运维工具,专注于 Linux 服务器 OpenSSH 的安全管理和版本更新。

核心价值

在生产环境中,OpenSSH 作为远程管理核心组件,其安全性直接关系到服务器的整体安全。SSH-Go 解决了以下核心痛点:

痛点解决方案
OpenSSH 版本过旧存在已知漏洞自动检测并升级到最新稳定版本
手动编译升级流程繁琐易出错全流程自动化,一键完成
升级后安全配置丢失导致登录失败自动备份并恢复所有安全配置
大规模服务器升级效率低下支持管理平台集中管控,批量运维

升级流水线

整个升级过程由 11 个步骤构成,全程自动化执行:

检测版本 → 获取源码 → 校验文件 → 备份配置 → 检查磁盘 → 解压源码
→ 备份新配置 → 检查头文件 → 编译安装 → 验证二进制 → 迁移服务
  1. 版本检测 — 通过本地 sshd -V 获取当前版本,支持镜像爬取和 API 服务端两种远程版本获取策略
  2. 获取源码 — 从管理平台 API 或镜像源获取 OpenSSH 源码包下载地址
  3. 校验文件 — 下载完成后进行 SHA256 完整性校验
  4. 备份配置 — 升级前自动创建 /etc/ssh/sshd_config 快照备份
  5. 检查磁盘 — 确保目标分区有 500MB 以上可用空间
  6. 解压源码 — 解压到临时目录准备编译
  7. 备份新配置 — 从源码包提取默认 sshd_config 作为参考
  8. 检查头文件 — 验证 PAM/zlib/OpenSSL 开发头文件,缺失时自动安装
  9. 编译安装./configure + make + make install,启用 PAM/zlib 支持
  10. 验证二进制 — 检查文件存在性、sshd -t 语法验证、随机端口启动测试
  11. 迁移服务 — 停止旧服务 → 创建 systemd 单元 → 启动并启用开机自启

守护恢复机制

内置 5 层递进恢复策略,确保 SSH 服务持续可用:

  1. 重启 sshd 服务
  2. 直接执行 systemctl restart sshd
  3. 从备份恢复 SSH 二进制 + 重建符号链接 + 重启
  4. 尝试回退旧版 ssh 服务
  5. 直接执行 sshd -D 二进制

适用场景

  • 安全合规 — 满足等保、ISO 27001 等安全合规要求,及时修复 SSH 漏洞
  • 批量运维 — 管理大规模 Linux 服务器集群的 OpenSSH 版本
  • 内网环境 — 支持自定义镜像源和跳过 HTTPS 证书验证,适配内网部署
  • 自动化运维 — 集成 systemd 服务,后台守护运行,无人值守升级

基于 MIT 许可证发布