最近一个项目使用的是AnolisOS8 Linux,因为涉及OpenSSH远程代码执行漏洞(CVE-2024-6387),需要升级到OpenSSH9.8P1以及以上版本,因为新出了OpenSSH9.9P1就直接上OpenSSH9.9P1 。
适用于任何RHEL(8/9)系发行版本:AlmaLinux8/9、Centos8/9、Rocky Linux、Oracle Linux等等
备份当前版本OpenSSH
1、查看当前OenSSH路径
[root@Jowto ~]# which ssh
# /usr/bin/ssh
[root@Jowto ~]# whereis ssh
# ssh: /usr/bin/ssh /etc/ssh /usr/share/man/man1/ssh.1.gz
2、创建备份目录
[root@Jowto ~]# mkdir -p /opt/openssh_backup
3、备份SSH配置
[root@Jowto ~]# cp -r /etc/ssh /opt/openssh_backup/ssh_$(date +%Y%m%d%H%M%S) #备份/etc/ssh,并添加时间戳。
[root@Jowto ~]# cp -r /etc/pam.d /opt/openssh_backup/pam.d_$(date +%Y%m%d%H%M%S) #备份/etc/pam.d,并添加时间戳。
4、验证备份
[root@Jowto ~]# ls -l /opt/openssh_backup/
下载编、编译安装新版OpenSSH
1、安装开发工具库和编译依赖包
[root@Jowto ~]# yum groupinstall "Development Tools" -y
[root@Jowto ~]# yum install pam-devel openssl-devel zlib zlib-devel tar -y
2、下载最新版OpenSSH9.9SP1源代码
[root@Jowto ~]# wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.9p1.tar.gz
3、编译安装OpenSSH9.9P1源代码
[root@Jowto ~]# tar -zxvf openssh-9.9p1.tar.gz
[root@Jowto ~]# cd openssh-9.9p1
[root@Jowto openssh-9.9p1]# ./configure
[root@Jowto openssh-9.9p1]# make && make install
3、重启SSH服务
[root@Jowto openssh-9.9p1]# systemctl restart sshd
4、验证版本(部分发行版本需要重新建立新的SSH会话连接)
[root@Jowto openssh-9.9p1]# ssh -V
# OpenSSH_9.9p1, OpenSSL 1.1.1k FIPS 25 Mar 2021
升级失败配置回退
1、恢复备份配置
[root@Jowto ~]# cp -r /opt/openssh_backup/ssh_20241230/* /etc/ssh/
[root@Jowto ~]# cp -r /opt/openssh_backup/pam.d_20241230/* /etc/pam.d/
2、重启SSH服务
[root@Jowto ~]# sudo systemctl restart sshd