快速升级OpenSSH8.6的办法


首先: 最终的方法


创建一个文件夹,并且设置好一个启动脚本.
内容主要如下:

├── rpm
│   ├── openssh-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-clients-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-clients-debuginfo-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-debuginfo-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-debugsource-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-server-8.6p1-1.el8.x86_64.rpm
│   ├── openssh-server-debuginfo-8.6p1-1.el8.x86_64.rpm
│   └── sshd_config
└── update.sh

设置的update.sh也比较简单

cd rpm
rpm -Uvh *.rpm
echo "开始修改策略"

chmod 400 /etc/ssh/ -R


cat <<EOF>/etc/pam.d/sshd
#%PAM-1.0
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
## pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_loginuid.so
## pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
EOF
scp sshd_config /etc/ssh/
echo "重启服务"
systemctl restart sshd

ssh -V

echo "!-_-!"

第一步: 下载必要的文件


上openssh的官网, 下载最新版本的openssh
最新的版本为 openssh8.6p1
在 CentOS7和CentOS8上面安装rpmbuild等工具.

第二步 安装rpmbuild以及进行设置


1. 安装rpmbuild
yum install rpm-build -y
2. 创建必备的目录
 mkdir -p /root/rpmbuild/{SPECS,SOURCES,RPMS}
3. 修改openssh 里面的 spec文件并且进行处理. 
解压缩openssh.tar.gz 内的文件, 将 /contrib/redhat/openssh.spec
复制到 /root/rpmbuild/SPECS/openssh.spec
注意需要修改一下 如下三个配置:
%global no_x11_askpass  1
%global no_gnome_askpass 1
#BuildRequires: openssl-devel < 1.1
#注意将 最后一个配置文件注释掉. 

注意为了编译openssh 还需要安装多个软件

 yum install openssl-devel krb5-devel pam-devel -y 

第三步 编译成rpm包

rpmbuild -bb openssh.spec

很快就就能够形成rpm包了

[root@centos76oracle19c x86_64]# pwd
/root/rpmbuild/RPMS/x86_64
[root@centos76oracle19c x86_64]# ll
总用量 4700
-rw-r--r-- 1 root root  666868 6月  23 23:32 openssh-8.6p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root  632928 6月  23 23:32 openssh-clients-8.6p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root 3045392 6月  23 23:32 openssh-debuginfo-8.6p1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root  459624 6月  23 23:32 openssh-server-8.6p1-1.el7.x86_64.rpm

在使用最上面的配置文件 就可以一键在centos7 上面进行openssh的升级了.

需要注意的是 centos8 以及 arm版本的 需要在重新编译一遍才可以.