CentOS7 OpenSSH9.6p打RPM包
说明:此方式针对9.7版本也可以用 其他版本应该也可以(我没试过其他版本,只试的9.6和9.7版本),如若需要可以自行尝试
1.下载所需要的源码文件
SSH SSL源码文件也可以通过官网自行下载然后在进行上传到服务器上
1.1 ssh源码
wget --no-check-certificate https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz
1.2 ssl源码
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1w.tar.gz
1.3 开源打包源码
git clone https://github.com/boypt/openssh-rpms.git
[root@localhost ~]# ll
total 11484
-rw-r--r--. 1 root root 1857862 Dec 18 23:06 openssh-9.6p1.tar.gz
drwxr-xr-x. 11 root root 4096 May 23 23:19 openssh-rpms
-rw-r--r--. 1 root root 9893384 Dec 4 22:39 openssl-1.1.1w.tar.gz
1.4 将我们下载的ssh ssl源码包移动到downloads目录下
mv openssh-9.6p1.tar.gz openssh-rpms/downloads/
mv openssl-1.1.1w.tar.gz openssh-rpms/downloads/
[root@localhost openssh-rpms]# cd downloads/
[root@localhost downloads]# ll
total 11512
-rw-r--r--. 1 root root 1857862 Dec 18 23:06 openssh-9.6p1.tar.gz
-rw-r--r--. 1 root root 9893384 Dec 4 22:39 openssl-1.1.1w.tar.gz
-rw-r--r--. 1 root root 29229 May 23 23:19 x11-ssh-askpass-1.2.4.1.tar.gz
[root@localhost downloads]# pwd
/root/openssh-rpms/downloads
2.准备编译打包环境
yum groupinstall -y "Development Tools"
yum install -y imake rpm-build pam-devel krb5-devel zlib-devel libXt-devel libX11-devel gtk2-devel
3.修改开源脚本
3.1 修改脚本pullsrc.sh
修改脚本pullsrc.sh
source version.env
# 修改为
source ./version.env
3.2 修改脚本compile.sh
修改脚本compile.sh
source version.env
# 改为
source ./version.env
3.3 修改 openssh.spec 添加ssh-copy-id命令
添加ssh-copy-id命令
cd el7/SPECS
vim openssh.spec
307 行后添加
install -m755 contrib/ssh-copy-id $RPM_BUILD_ROOT/usr/bin/ssh-copy-id
390行后添加(注意307行添加后390就变成了391行)
%attr(0755,root,root) %{_bindir}/ssh-copy-id
3.4 修改版本openssl的版本 version.env
这里我们修改成我们对应的版本,即我们上面提到的downloads目录下所存放的文件
OPENSSLSRC=openssl-1.1.1w.tar.gz
OPENSSHSRC=openssh-9.6p1.tar.gz
ASKPASSSRC=x11-ssh-askpass-1.2.4.1.tar.gz
4.编译打包
进入到openssh-rpms目录下执行打包脚本
./compile.sh el7
打包过程比较慢,请耐心等待 本人打包大概用了10-15分钟
打完rpm包的目录为
[root@localhost x86_64]# ll
total 15476
-rw-r--r--. 1 root root 5151320 May 23 23:48 openssh-9.6p1-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 5200900 May 23 23:49 openssh-clients-9.6p1-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 3956796 May 23 23:49 openssh-debuginfo-9.6p1-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 1531000 May 23 23:49 openssh-server-9.6p1-1.el7.x86_64.rpm
[root@localhost x86_64]# pwd
/root/openssh-rpms/el7/RPMS/x86_64
最后我们把他们打成压缩包,以便使用
tar -cvf centos7_x86_64_openssh9.6p1.tar x86_64/
OpenSSH升级
1、查询当前的openssh安装版本
rpm -qa | grep openssh
2、查看当前的ssh版本
ssh -V
3、卸载当前的openssh服务
rpm -qa | grep openssh | xargs rpm -e --nodeps
4、解压9.7的安装包
tar -zxvf centos7_x86_64_openssh9.6p1.tar
5、安装9.7的openssh服务
rpm -Uvh openssh-*.rpm
6、再查询更新后的openssh安装版本
rpm -qa | grep openssh
7、查询更新后ssh版本
ssh -V
8、重启sshd服务
systemctl restart sshd
傻瓜式更新,不用单独更新OpenSSL版本后再升级
注意:建议虚拟机测试一下