温馨提示×

centos ssh版本升级指南

小樊
72
2025-09-17 15:58:38
栏目: 智能运维

CentOS SSH版本升级指南

一、升级前准备

  1. 备份关键数据
    升级前务必备份SSH配置文件及密钥,防止操作失误导致无法连接:
    sudo cp -r /etc/ssh /etc/ssh_backup  # 备份整个SSH配置目录
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup  # 单独备份配置文件
    
  2. 检查当前SSH版本
    通过以下命令确认当前SSH版本,明确升级目标:
    ssh -V
    
    输出示例:OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25 Mar 2021

二、通过YUM仓库升级(推荐)

适用于CentOS 7/8/9等版本,优先选择此方式(更安全、便捷)。

  1. 更新系统包
    确保系统及软件包为最新状态,解决依赖问题:
    sudo yum update -y
    
  2. 升级OpenSSH
    CentOS默认使用OpenSSH,直接通过yum升级即可:
    • CentOS 8及以上(使用dnf):
      sudo dnf install openssh-server -y
      
    • CentOS 7及以下(使用yum):
      sudo yum install openssh-server -y
      
  3. 重启SSH服务
    应用升级后的版本:
    sudo systemctl restart sshd
    
  4. 验证版本
    确认升级成功:
    ssh -V
    
    若版本号更新,则表示升级完成。

三、手动编译安装(可选,适用于无最新版本仓库的情况)

若yum仓库中没有所需版本,可手动下载源码编译安装。

  1. 安装编译依赖
    编译前需安装开发工具及依赖库:

    sudo yum groupinstall "Development Tools" -y
    sudo yum install zlib-devel openssl-devel pam-devel -y
    
  2. 下载并解压源码
    访问OpenSSH官网(如OpenBSD OpenSSH)下载所需版本,例如openssh-9.6p1.tar.gz

    wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
    tar -xzvf openssh-9.6p1.tar.gz
    cd openssh-9.6p1
    
  3. 配置与编译
    指定安装路径(如/usr/local/openssh),避免覆盖系统文件:

    ./configure --prefix=/usr/local/openssh --with-pam --with-zlib --with-ssl-dir=/usr/lib64/openssl
    make
    sudo make install
    
  4. 替换旧版本二进制文件
    备份旧版本后,替换为编译生成的文件:

    sudo mv /usr/sbin/sshd /usr/sbin/sshd.old
    sudo ln -s /usr/local/openssh/sbin/sshd /usr/sbin/sshd
    sudo cp ssh /usr/bin/ssh  # 替换客户端命令(可选)
    
  5. 重启服务并验证

    sudo systemctl restart sshd
    ssh -V  # 确认版本更新
    
  6. 更新系统启动脚本
    确保系统启动时加载新版本:

    sudo systemctl daemon-reload
    ```。
    
    
    

四、升级后注意事项

  1. 测试连接
    从另一台机器测试SSH连接,确保服务正常:
    ssh username@your_server_ip
    
  2. 检查配置兼容性
    升级后需确认/etc/ssh/sshd_config中的配置项与新版本兼容(如PasswordAuthenticationPermitRootLogin等),避免因配置错误导致无法登录。
  3. 恢复备份(若出现问题)
    若升级后无法连接,可通过备份恢复:
    sudo systemctl stop sshd
    sudo cp /etc/ssh_backup/sshd_config /etc/ssh/sshd_config
    sudo cp /etc/ssh_backup/ssh_host_* /etc/ssh/
    sudo systemctl start sshd
    
  4. 关注安全公告
    升级后及时关注OpenSSH官方安全公告,定期升级以修复漏洞。

0