实用小技巧-最新OPENSSH的RPM安装包制作

0、应用场景

简单说:

等保要求,LINUX无高风险,而SSH是我们几乎必须开放的!!!!!

如果你要用源码来编译安装我不拦着你,我以前尝试过手动来搞,但是出问题的概率太大,编译起来要求大多。尤其是新版本openssh9.4之后只能用新的openssl来一起编译。
用了工具轻松多了,一劳永逸。有了RPM包,你可以用运维工具直接推下去多好。
主要还得感谢大佬们的无私奉献

1、工具介绍

搬运github大佬的工具
https://github.com/boypt/openssh-rpms
支持centos5/6/7都可以编译,亲测6编译的安装包在7/8上都可以用。使用7编译的包在bclinux、银河麒麟、华为欧拉系统、龙蜥都可以使用。
编译工具下载地址:
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

工具下载下来解压是这个样的结构

图片

1、compile.sh:编译脚本,执行生成RPM包用的,特殊说明了下,要是5版本的系统需要./compile.sh el5
2、其中downloads里放的源码包
3、x11-ssh-askpass-1.2.4.1.tar.gz
4、el5/el6/el7对就要编译的系统版本,EL7/SPEC里面包含编译用到的文件
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

修改脚本   

另外默认openssh源码中是没有ssh-copy-id相关参数的,如果直接编译安装,会发现安装后没有ssh-copy-id命令,因此如果需要用到该命令,需要修改编译参数控制文件openssh.spec。本次要升级的环境为CentOS7,因此我只修改el7目录下的SPECS/openssh.speec文件中第305行下增加一行。

install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id

图片

继续修改el7目录下的SPECS/openssh.speec文件,第388行后面添加一行。

%attr(0755,root,root) %{_bindir}/ssh-copy-id

图片

准备好源码安装包,我这里手动下载了放到里面downloads目录里

图片

3、开始编译生成安装包

执行源码打包脚本,一定要用bash执行哈!

bash compile.sh

国际惯例,检查一下编译是否成功

图片

检查rpm包是否都以打包好         

图片

4、傻瓜脚本一键安装

接下来用到我做好的傻瓜脚本

图片

,说傻瓜脚本是因为我一个检查也没放几乎

把这个保存下来,放到RPMS目录下

#!/bin/bashcp /etc/pam.d/sshd /etc/pam.d/sshd.beforecp /etc/ssh/sshd_config  /etc/ssh/sshd_config.beforerpm -Uvh *.rpmcd /etc/ssh/chmod 400 ssh_host_ecdsa_key ssh_host_ed25519_key ssh_host_rsa_keyecho "PermitRootLogin yes" >> /etc/ssh/sshd_configsed -i -e "s/#UsePAM no/UsePAM yes/g" /etc/ssh/sshd_config/bin/cp /etc/pam.d/sshd.before /etc/pam.d/sshdecho "kexalgorithms curve25519-sha256,curve25519-sha256@libssh.org,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521" >>/etc/ssh/sshd_configsystemctl restart sshdecho "#################### verify ######################"ssh -Vecho "#################### end-verify ##################"

然后运行

图片

大功搞成。这个RPMS整个目录下的你打包好,拷贝到其它主机可以直接用了就。

另外说明一下,这个脚本里禁用了不安全的算法如下:

diffie-hellman-group1-sha1diffie-hellman-group14-sha1diffie-hellman-group14-sha256diffie-hellman-group16-sha512diffie-hellman-group18-sha512diffie-hellman-group-exchange-sha1diffie-hellman-group-exchange-sha256

这些玩意是高风险,在一些老的网络设备上都会使用,大家注意,另外升级完后,你的SSH终端也得换个高的,要不登录不上去了。

如果需要支持旧算法,/etc/ssh/sshd_config中修改,之后重启SSHD

KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256@libssh.orgHostKeyAlgorithms +ssh-rsa

关于LINUX登录地址限制的问题请看这里

实用小技巧-限制SSH登录LINUX的主机IP-CSDN博客

也欢迎关注我的公众号【徐sir的IT之路】,一起学习!

————————————————————————————
公众号:徐sir的IT之路
CSDN :徐sir(徐慧阳)_数据库记录,系统集成-CSDN博客
墨天轮:徐sir的个人主页 - 墨天轮
PGFANS:PGFans问答社区:全球唯一的PostgreSQL中文技术交流社区

————————————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐sir(徐慧阳)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值