
作者 | 徐sir 11g ocm、Oracle ACE-A、PGCM
中国OCMU成员、中国ACDU成员、墨天轮2023年十大优秀作者、青学会联合创始人
如需转载请私信联系我,除了墨天轮、CSDN、PGFANS和微信公众号以外都不是我的号
如果觉得我写的对你有帮助,麻烦动动小手,点下:转发、关注、在看,帮我多增加点人气
个人水平有限,有意见或者发现文章有误请留言、私信我,喷子轻喷
0、应用场景
简单说:
等保要求,LINUX无高风险,而SSH是我们几乎必须开放的!!!!!
如果你要用源码来编译安装我不拦着你,我以前尝试过手动来搞,但是出问题的概率太大,编译起来要求大多。尤其是新版本openssh9.4之后只能用新的openssl来一起编译。
有了RPM包,你可以用运维工具直接推下去多好。主要还得感谢github大佬们的无私奉献,下面是成品演示视频
1、工具介绍
搬运github大佬的工具
https://github.com/boypt/openssh-rpms
支持centos5/6/7都可以编译,亲测6编译的安装包在7/8上都可以用。使用7编译的包在bclinux、银河麒麟、华为欧拉系统、龙蜥都可以使用(安装完还需要适配调试才保证不出问题)。
目前发现linux9版本需要到9版本的系统上编译。
编译工具下载地址:
https://github.com/boypt/openssh-rpms/archive/refs/heads/main.zip
关于工具介绍
# Edit version.env file if you want a specific version of openssh/openssl combination (or maybe I havn't updated to the latest).
# Download source packages.
# if any error comes up, just manally download the source tar files into the `downloads` dir.
./pullsrc.sh
# Run the script to build RPMs.
# For CentOS 5, the default rpmbuild didn't set the variable of `${dist}`, manually run the script with argument `./compile.sh el5`
./compile.sh
工具下载下来解压是这个样的结构
[root@localhost ~]# tree openssh-rpms-mainopenssh-rpms-main├── amzn1│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.amzn1│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── amzn2│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.amzn2│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── amzn2023│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.amzn2023│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── compile.sh├── docker│ ├── Dockerfile.amazonlinux│ ├── Dockerfile.centos│ ├── Dockerfile.centos-stream│ ├── modify_dnf_source.pl│ └── modify_yum_source.sh├── docker.README.md├── downloads│ └── x11-ssh-askpass-1.2.4.1.tar.gz├── el5│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.el5│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── el6│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.el6│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── el7│ ├── BUILD│ ├── RPMS│ ├── SOURCES│ │ └── sshd.pam.el7│ ├── SPECS│ │ └── openssh.spec│ └── SRPMS├── pullsrc.sh├── README.md└── version.env
1、compile.sh:编译脚本,执行生成RPM包用的,特殊说明了下,要是5版本的系统需要./compile.sh el5
2、其中downloads里放的源码包
3、x11-ssh-askpass-1.2.4.1.tar.gz
4、el5/el6/el7/asmzn1/smzn2/smzn2023对应要编译的系统版本
5、RPMS里是存储编译好的RPM包
5、sshd.pam.el7 就是对应操作系统里的/etc/pam.d里的模板文件原始版本
6、openssh.spec。编译好的rpm包放在EL7/RPMS目录下,有能力的小伙伴可以在这里修改相关的参数。
7、pullsrc.sh:openssh相关源码文件下载脚本,如果没有网的话,也可以手动下载源码包,不使用这个脚本
8、version.env:定义了openssh及openssl源码的版本信息
至此,工具基本介绍完毕。
2、准备编译环境
准备编译环境,配置好yum源,安装如下安装包
yum groupinstall -y "Development Tools"yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel
新版本的工具里已经包含了ssh-copy-id命令,所以不需要再修改脚本了
准备好源码安装包,我这里手动下载了放到里面downloads目录里

3、开始编译生成安装包
执行源码打包脚本
./compile.sh
国际惯例,检查一下编译是否成功

检查rpm包是否都已经打包好 (新版本可以生成9.9的RPM)我这里用的图是旧图)

4、脚本一键安装
这个就需要你认真适配每一个系统来修改了,可以写到SPEC文件里,也可以写在安装SHELL里。我就不贴在这里了,直接编译完的安装包是可以一键升级,但有的版本里可能会出现升级后SSH服务无法启动、升级后无法登陆系统、ssh登陆报错等。
有需要的可以来我的咸鱼小店直接买成品

升级新版本后host.allow和host.deny已经无法使用,解决办法看这篇:
关于RAC升级了SSH后可能无法打补丁可以看这篇
《RAC升级了openssh 9.x后踩坑了?看总监如何解决的》
往期文章回顾
数据库安装搭建
实战:如何在LINUX8.0上安装Oracle 11.2.0.4(文内有快速配置安装脚本)
搭建记录:duplicate搭建oracle rac到单实例搭建物理DG_V7
如何正确在windows server core(无图形界面)安装Oracle 19c(ASM版本)
如何正确在windows server core(无图形界面)安装Oracle 19c
实战RAC迁移系列
实战RAC迁移项目第2篇:RAC-RAC主备切换/IP更换/DG恢复
假期加班实战:Solaris系统下Oracle 12.2 在线扩容ASM磁盘组操作记录
数据库优化实战系列
Oracle故障处理系列
如何正确的在AIX 7.x系统中开启LargePage for Oracle
记一次INS-06006典型问题|安装Oracle 19c rac遇到的ssh互信不通过
实战:记一次DG跨平台迁移win_to_linux遇到的问题12
处理11g grid集群安装10g database软件,无法DBCA创建集群实例问题
记一次ORA-07445[nttaddr2bnd()+2158]问题处理
windows下oracle12C创建第2个实例后,第1个实例无法启动??
EXPDP遇到ORA-39171 ORA-1691报错处理办法
小白常用-Windows下如何把Oracle从C盘整体迁移到D盘?
系统集成类案例
真实案例-esxi7.0u1以上版本vCLS 虚拟机无法打开电源
如何不停机完成Linux操作系统克隆,也适用于P2V&V2V
安装ESXI 7.0的系统盘小于120G,安装后无本地datastore存储的处理办法
Centos7等保加固配置登录失败处理导致root被锁定,如何解锁?
Oracle SPARC服务器系列
传统IT领域的强者-Oracle小型机-第1篇:服务器简单介绍

墨天轮:https://www.modb.pro/u/3605




