整站快速排名,电商网站建设考试,什么是网站定位,网站做零售1 介绍
openssh 9.4版本已于8月10号发布#xff0c;安全团队又催着要赶紧升级环境里的ssh版本#xff0c;本文主要介绍Centos5、Centos6、Centos7下openssh 9.4源码编译rpm包以及批量升级服务器openssh版本的方法。关注公众号后台回复ssh可获取本文相关源码文件。 https://w…1 介绍
openssh 9.4版本已于8月10号发布安全团队又催着要赶紧升级环境里的ssh版本本文主要介绍Centos5、Centos6、Centos7下openssh 9.4源码编译rpm包以及批量升级服务器openssh版本的方法。关注公众号后台回复ssh可获取本文相关源码文件。 https://www.openssh.com/releasenotes.html 2 将源码编译为rpm包
2.1 编译脚本介绍
由于openssh官方只提供源码包网上下载的rpm包有可能遇到各种依赖问题因此我们选择自己将源码编译为rpm包来升级环境的openssh。当然编译过程也尽量简单化这里我们直接使用开源的脚本进行编译。 https://github.com/boypt/openssh-rpms 编译需要涉及到很多开发软件的下载安装建议使用一台虚拟机来进行操作。先下载编译脚本解压
[rootetcd-1 ~]# wget https://github.com/boypt/openssh-rpms/archive/refs/heads/main.zip
[rootetcd-1 ~]# unzip main.zip
[rootetcd-1 ~]# cd openssh-rpms-main/
简单看下代码结构 compile.sh编译脚本 el5、el6、el7对应CentOS5、6、7三个系统编译相关的参数由SPECS目录下的openssh.spec控制。编译好的rpm包放在RPMS目录下。 pullsrc.shopenssh相关源码下载脚本 version.env定义了openssh及openssl源码的版本信息 2.2 修改代码
先修改一下pullsrc.sh脚本给wget添加上--no-check-certificate参数否则可能因为证书问题导致源码下载失败。 另外默认openssh源码中是没有ssh-copy-id相关参数的如果直接编译安装会发现安装后没有ssh-copy-id命令因此如果需要用到该命令需要修改编译参数控制文件openssh.spec。本次要升级的环境为CentOS7因此我只修改el7目录下的SPECS/openssh.speec文件在如下位置添加一行。
install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id 继续修改el7目录下的SPECS/openssh.speec文件在如下位置添加一行。
%attr(0755,root,root) %{_bindir}/ssh-copy-id 2.3 准备编译环境
[rootetcd-1 openssh-rpms-main]# yum groupinstall -y Development Tools
[rootetcd-1 openssh-rpms-main]# yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel 2.4 拉取源码并编译打包
[rootetcd-1 openssh-rpms-main]# bash pullsrc.sh ##拉去源码包
执行完成后检查下download目录相关的源码包是否已下载好服务器没有网络可以从下面的链接直接下载好传到download目录下。 https://www.openssl.org/source//openssl-1.1.1v.tar.gz https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz 执行源码打包脚本
[rootetcd-1 openssh-rpms-main]# bash compile.sh
编译完成检查编译是否成功 检查rpm包是否都以打包好 3 批量升级服务器openssh版本至9.4
3.1 脚本介绍
脚本会用到ansible因此执行脚本的服务器上需要安装ansible。获取到脚本后先解压
[root172-20-17-60 ~]# tar xvf ssh_9.4.tar.gz
[root172-20-17-60 ~]# cd ssh_9.4
脚本主要文件如下 hosts: ansible主机清单文件填写待升级ssh版本的服务器ip及用户名密码 rpms存放待升级的openssh相关的rpm包。可以将前面编译好的openssh包放入该路径下 ssh_update.shssh升级脚本将会推送到各个服务器 ssh_update.yaml升级时ansible使用的playbook update_ssh.sh主脚本通过该脚本来执行ansible的playbook 3.2 自定待升级服务器信息
node1为主机组主机组下填写服务器ip服务器用户名密码相同的可以填在一起 ansible_user填写用户名 ansible_ssh_pass填写登录密码
如果用其它用户名或密码不同的服务器可以填写到主机组node2下并可新增其它主机组 3.3 执行脚本开始升级openssh版本
[root172-20-17-60 ssh_9.4]# bash update_ssh.sh
检查ssh版本是否已升级完成 服务上检查openssh是否成功升级到9.4版本 检查ssh是否能正常登录到服务器