实用小技巧-最新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中文技术交流社区

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

### 回答1: OpenSSH 是一种提供安全远程登录和文件传输的开源软件套件。为了在 RPM 管理系统中进行安装,我们可以执行以下步骤: 1. 首先,我们需要从 OpenSSH 官方网站(https://www.openssh.com/)或其他可信来源下载适用于我们的操作系统的 RPM 安装包。 2. 下载完成后,我们可以使用以下命令进行安装:sudo rpm -i openssh-<版本号>.rpm。其中,<版本号> 是我们下载的安装包的版本号。 3. 安装命令执行完毕后,OpenSSH 将会被成功安装到我们的系统中。我们可以使用以下命令验证安装是否成功:ssh -V。如果安装成功,该命令将显示 OpenSSH 的版本信息。 4. 安装完成后,我们可以通过编辑 SSH 配置文件(通常位于 /etc/ssh/sshd_config)来定制 OpenSSH 的设置。比如,我们可以更改默认 SSH 端口号、允许或禁止使用密码登录等。 5. 编辑完成后,我们需要重启 sshd 服务以使配置生效。可以使用以下命令重启服务:sudo systemctl restart sshd。 6. 安装完成并启动 SSH 服务后,我们将能够使用 SSH 客户端工具(比如 PuTTY 或 OpenSSH)连接到远程服务器,并通过 SSH 进行安全的远程登录和文件传输。 总结起来,通过下载合适的 RPM 安装包,并使用 rpm 命令进行安装,我们可以在使用 RPM 管理系统的操作系统上安装 OpenSSH。安装完成后,我们需要编辑配置文件并重启 SSH 服务以使设置生效。然后,我们便可以使用 SSH 客户端工具连接到远程服务器进行安全的远程操作。 ### 回答2: OpenSSH是一个用于安全登录和远程操作的开源软件套件。RPM是一种用于在基于Linux的系统上进行软件管理的标准格式。OpenSSH rpm安装包是将OpenSSH软件打rpm格式,以便在基于Linux的系统上进行快速、简便的安装。 OpenSSH rpm安装包的使用非常简单。首先,你需要从OpenSSH的官方网站或其它可信的软件源下载合适版本的OpenSSH rpm安装包。然后,使用命令行工具或软件管理器(如yum或dnf)执行以下命令进行安装: ``` sudo rpm -i openssh.rpm ``` 这将以管理员权限安装OpenSSH rpm安装包。安装完成后,你可以使用`ssh`命令连接到其他计算机、远程执行命令,或进行文件传输。 但是注意,OpenSSH rpm安装包含了OpenSSH的软件本身,并不OpenSSH所依赖的其它库和文件。因此,在安装OpenSSH rpm之前,你需要确保系统已经安装了OpenSSH所需的依赖。 如果你的系统已经安装了OpenSSH rpm安装包,但你想升级到最新版本,可以使用以下命令: ``` sudo rpm -U openssh.rpm ``` 这将升级OpenSSH到新版本,保留原有的配置文件和设置。 总之,OpenSSH rpm安装包提供了一种便捷的方式来在基于Linux的系统上安装和升级OpenSSH软件。它使得使用OpenSSH更加方便和快捷,为远程操作提供了一个安全可靠的解决方案。 ### 回答3: OpenSSH是一个开源的用于安全远程登录的工具。RPM(Red Hat Package Manager)是一种用于在Linux系统上管理软件的工具。因此,OpenSSH RPM安装包是用于在Linux系统上安装OpenSSH软件的一种安装包。 在安装OpenSSH RPM之前,我们首先需要下载适用于我们操作系统版本的OpenSSH RPM。可以通过官方网站或者软件源来获取适用于我们的系统的OpenSSH RPM。 安装OpenSSH RPM的步骤如下: 1. 使用命令行进入到OpenSSH RPM所在的目录。 2. 运行以下命令安装OpenSSH RPM: ``` sudo rpm -ivh openssh.rpm ``` 上述命令中,`openssh.rpm`是OpenSSH RPM的文件名。 3. 完成安装后,我们可以通过运行以下命令来验证OpenSSH是否成功安装: ``` ssh -V ``` 如果安装成功,则会显示OpenSSH的版本号。 在安装过程中可能会遇到依赖关系的问题,这时我们需要手动解决依赖问题。一种方法是使用yum命令来自动解决依赖问题: ``` sudo yum install openssh.rpm ``` 上述命令中,yum会自动下载并安装OpenSSH RPM的所有依赖项。 总结:OpenSSH RPM安装包是用于在Linux系统上安装OpenSSH软件的一种安装包。我们可以通过下载适用于我们系统的OpenSSH RPM,并运行`rpm -ivh`命令来安装OpenSSH。如果遇到依赖问题,可以使用yum命令来自动解决依赖问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

徐sir(徐慧阳)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值