首页主机资讯CentOS SSH如何更新与升级

CentOS SSH如何更新与升级

时间2025-12-09 21:52:04发布访客分类主机资讯浏览1175
导读:CentOS 上 OpenSSH 的更新与升级指南 一 升级策略与准备 优先使用系统仓库的更新(安全、可回滚);仅在确有安全需求且仓库版本过低时,才考虑第三方仓库或源码编译升级。升级前务必做好完整备份与回退方案。 关键准备: 备份配置与...

CentOS 上 OpenSSH 的更新与升级指南

一 升级策略与准备

  • 优先使用系统仓库的更新(安全、可回滚);仅在确有安全需求且仓库版本过低时,才考虑第三方仓库或源码编译升级。升级前务必做好完整备份与回退方案。
  • 关键准备:
    • 备份配置与主机密钥:
      • 备份配置:cp -a /etc/ssh /etc/ssh.bak_$(date +%F)
      • 备份主机密钥:cp -a /etc/ssh/ssh_host_* /root/ssh_host_keys.bak_$(date +%F)
    • 安装编译与依赖工具(源码/部分RPM构建时需要):
      • yum groupinstall -y "Development Tools"
      • yum install -y gcc zlib-devel openssl-devel pam-devel rpm-build perl perl-devel
    • 保持现有会话不断开,先开一个备用终端,验证新连接可用后再关闭旧会话。
    • 防火墙放行(如启用 firewalld):firewall-cmd --permanent --add-service=ssh & & firewall-cmd --reload
      以上做法中的备份、依赖安装与防火墙放行为通用安全操作,源码编译示例与依赖项在多篇实践文档中均有体现。

二 方法一 使用系统仓库更新(推荐)

  • 适用于希望稳妥、可回滚的场景。
  • 步骤:
    • 检查可用更新:yum check-update openssh-server openssh-clients
    • 执行更新:yum update -y openssh-server openssh-clients
    • 重启服务:systemctl restart sshd
    • 验证版本:
      • 客户端:ssh -V
      • 服务端:sshd -V(需 root)
  • 回退(如出现问题):yum downgrade -y openssh-server openssh-clients 并重启 sshd。
    该方法是日常维护的首选路径,简单且风险低。

三 方法二 使用 RPM 包升级(含离线场景)

  • 适用于 CentOS 7 等官方源版本较旧、但可通过可信 RPM 包或内网镜像快速升级的场景。
  • 在线方式(有可用仓库时):
    • 安装/更新:yum localinstall -y openssh-*.rpmrpm -Uvh openssh-*.rpm
  • 离线方式(无外网时):
    • 在一台可联网机器下载对应系统/架构的 RPM 包(如 openssh-9.9p1 的 el7 x86_64/aarch64 包),拷贝到目标机后执行:
      • yum localinstall -y openssh-*.rpmrpm -Uvh openssh-*.rpm
  • 关键细节与回退:
    • 升级前备份:/etc/ssh/sshd_config/etc/pam.d/sshd(不少 RPM 升级不会覆盖配置,但覆盖时可用备份快速恢复)。
    • 主机密钥权限:chmod 600 /etc/ssh/ssh_host_*_key
    • 重启服务:systemctl restart sshd
    • 验证版本:ssh -Vsshd -V
    • 回退:rpm -Uvh --oldpackage openssh-< 旧版本> .rpmyum downgrade -y openssh-server openssh-clients
      社区实践中常见做法包括备份配置与 PAM 文件、设置密钥权限、以及使用本地 RPM 安装/回退,便于在受限网络环境快速完成升级。

四 方法三 源码编译升级(当仓库与 RPM 均无法满足时)

  • 适用于必须获得上游新版本(如修复特定 CVE)的场景。
  • 步骤(示例):
    • 安装依赖:yum groupinstall -y "Development Tools"yum install -y zlib-devel openssl-devel pam-devel
    • 备份:cp -a /etc/ssh /etc/ssh.bak_$(date +%F) 与主机密钥
    • 下载与解压:
      • wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-< 版本> .tar.gz
      • tar xzf openssh-< 版本> .tar.gz & & cd openssh-< 版本>
    • 配置(示例):
      • ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
    • 编译与安装:make & & make install
    • 权限与替换:
      • chmod 600 /etc/ssh/ssh_host_*_key
      • 必要时替换二进制:mv /usr/bin/ssh /usr/bin/ssh.old & & cp ssh /usr/bin/sshmv /usr/sbin/sshd /usr/sbin/sshd.bak & & cp sshd /usr/sbin/sshd
    • 配置与启动:
      • 按需调整 /etc/ssh/sshd_config(如 PermitRootLoginPasswordAuthenticationUsePAM 等)
      • 重启:systemctl restart sshd 或按系统提供的 init 脚本重启
    • 验证:ssh -Vsshd -V
  • 风险提示:
    • 编译升级可能覆盖或影响系统文件;务必保留备份与回退路径。
    • 若系统启用了 SELinux,需确保策略与 PAM 配置匹配,避免登录失败(必要时临时 setenforce 0 排查,但生产环境不建议长期关闭)。
      源码编译流程、权限设置与常见排错要点在多篇实践文档中有详细说明。

五 验证与回退

  • 版本与服务状态:
    • 版本:ssh -Vsshd -V
    • 服务:systemctl status sshd;如有问题,查看日志:journalctl -u sshd -b
  • 快速回退路径:
    • 仓库安装:yum downgrade -y openssh-server openssh-clients & & systemctl restart sshd
    • RPM 安装:rpm -Uvh --oldpackage < 旧版RPM> yum downgrade -y < 旧版包>
    • 源码安装:用备份的二进制与配置替换回去(如 cp /usr/bin/ssh.old /usr/bin/sshcp /usr/sbin/sshd.bak /usr/sbin/sshd),再重启 sshd。
      版本核验、服务重启与回退步骤是升级操作的必要闭环,可显著降低风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS SSH如何更新与升级
本文地址: https://pptw.com/jishu/767550.html
CentOS里Postman如何调试接口 CentOS中Postman如何进行数据验证

游客 回复需填写必要信息