一、简单说:等保要求,LINUX无高风险,而SSH是我们几乎必须开放的!!!!!
如果你要用源码来编译安装我不拦着你,我以前尝试过手动来搞,但是出问题的概率太大,编译起来要求大多。尤其是新版本openssh9.4之后只能用新的openssl来一起编译。
有了RPM包,你可以用运维工具直接推下去多好。
Supported (tested) :
Distro | Version | Recommanded EL RPMs |
CentOS | 5 | EL 5 |
CentOS | 6 | EL 6 |
CentOS | 7 | EL 7 |
CentOS | 8 | EL 8 |
CentOS Stream | 8 | EL 8 |
CentOS Stream | 9 | EL 9 |
Rocky Linux | 8 | EL 8 |
Rocky Linux | 9 | EL 9 |
Amazon Linux | 1 | EL 6 |
Amazon Linux | 2 | EL 7 |
Amazon Linux | 2023 | EL 9 |
UnionTech UOS | V20 | UOS20 |
openEuler | 20.03 | EL 8 |
openEuler | 22.03 | EL 8 |
openEuler | 24.03 | EL 9 |
AnolisOS | 7 | EL 7 |
AnolisOS | 8 | EL 8 |
AnolisOS | 2023 | EL 9 |
编译工具
openssh-rpms-10包含以下文件

1、compile.sh:编译脚本,执行生成RPM包用的,特殊说明了下,要是5版本的系统需要./compile.sh el5
2、其中downloads里放的源码包x11-ssh-askpass-1.2.4.1.tar.gz
3、el5/el6/el7/asmzn1/smzn2/smzn2023对应要编译的系统版本
4、RPMS里是存储编译好的RPM包
5、sshd.pam.el7 就是对应操作系统里的/etc/pam.d里的模板文件原始版本
6、openssh.spec。编译好的rpm包放在EL7/RPMS目录下,有能力的小伙伴可以在这里修改相关的参数。
7、pullsrc.sh:openssh相关源码文件下载脚本,如果没有网的话,也可以手动下载源码包,不使用这个脚本
8、version.env:定义了openssh及openssl源码的版本信息
至此,工具基本介绍完毕。
二、准备编译环境
准备编译环境,配置好yum源,安装如下安装包
yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel gcc44 perl perl-CPAN
准备好源码安装包,我这里手动下载了放到里面downloads目录里

三、修改配置文件
修改版本信息
编辑openssh-rpms-10.3p1_b6/version.env文件,更新OpenSSH及OpenSSL到实际需要的版本。本文演示为openssh10.5p1及openssl-4.0.1版本

开始编译生成安装包
执行源码打包脚本
./compile.sh开始编译

编译的时间有点长,耐心等待。。。
看到以下界面说明已经编译成功了。

编译生成了三个RPM包

四、RPM包安装
1、 Backup current SSH config
# 备份当前SSH config
[[ -f /etc/ssh/sshd_config ]] && mv /etc/ssh/sshd_config /etc/ssh/sshd_config.$(date +%Y%m%d)
2、新建ssh连接窗口,以免当前ssh连接窗口重启sshd后登录不了
3、RPM包安装
yum localinstall openssh*.rpm
rpm -ivh --force --nodeps --replacepkgs --replacefiles openssh-*.rpm
两种方法都可以
安装完成执行:
chmod -v 600 /etc/ssh/ssh_host_*_key
4、验证sshd_config配置

无输出,说明配置文件没有问题
5、重启sshd服务
systemctl restart sshd

6、验证openssh版本

至此,openssh升级完成。
特别提醒:
⚠️重要提醒:务必先在测试环境完整验证升级流程,再上生产执行,防止 ssh 无法登录导致服务器失联。
夜雨聆风