CentOS7.9离线升级openssh7.4至9.4p教程

升级注意事项!

1、多开几个连接窗口(xshell),避免升级openssh失败无法再次连接终端,否则要跑机房了。
2、可开启telnet服务、vnc服务、打快照。多几个“保命”的路数。
3、这里如果gcc之前没装,是需要在线升级的。(离线安装未验证不作为教程)

一、centos7.9的信息

openssl version
#显示版本信息:OpenSSL 1.0.2k-fips  26 Jan 2017
ssh -V
#显示反馈信息:OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017

cat /proc/version
#显示linux版本信息:Linux version 3.10.0-1160.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Mon Oct 19 16:18:59 UTC 2020


1.1升级操作

下载所需软件包 (zlib、openssl、openssh)

zlib下载地址: https://www.zlib.net/fossils/zlib-1.2.13.tar.gz
openssl下载地址: https://www.openssl.org/source/openssl-1.1.1v.tar.gz
openssh下载地址 :https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz?spm=a2c6h.25603864.0.0.686840adSlplPe

保存3个文件到ssh_update

使用finalshell 上传ssh_update941p文件夹到目标服务器的/opt目录下。

#进入目录并查看3个文件
cd /opt/ssh_update
ls
#显示文件列表:openssh-9.4p1.tar.gz openssl-1.1.1v.tar.gz zlib-1.2.13.tar.gz
#设置setenforce为0
setenforce 0
#配置文件中插入配置信息
sed -i 's/SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

安装zlib. (如果编译报错缺gcc,则yum install gcc)

tar -xf zlib-1.2.13.tar.gz
cd zlib-1.2.13/
./configure
make -j4
make install

安装openssl

#先回到/opt/ssh_update目录
cd ..
#备份文件
mv /usr/bin/openssl /usr/bin/openssl.bak
#解压文件
tar xf openssl-1.1.1v.tar.gz
#进入解压好的目录
cd openssl-1.1.1v/
#编译并安装ssl
./config shared && make -j8 && make install
#创建软连接
ln -s /usr/local/bin/openssl /usr/bin/openssl
ln -snf /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so
ln -snf /usr/local/lib64/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -snf /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so
ln -snf /usr/local/lib64/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1
#创建动态装入程序(ld.so)所需的连接和缓存文件.
ldconfig
#查看openssl版本
openssl version
#显示内容:2023年8月1日的 openSSL版本

安装openssh

#先回到/opt/ssh_update目录
cd ..
#备份文件
cp /usr/bin/ssh /usr/bin/ssh.bak
cp /usr/sbin/sshd /usr/sbin/sshd.bak
mv /etc/ssh /etc/ssh.bak
#解压文件
tar xf openssh-9.4p1.tar.gz
#进入解压目录
cd openssh-9.4p1/
#编译并安装
./configure --prefix=/usr/ --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl --with-zlib --with-md5-passwords
make -j8 && make install
#修改启动文件和pam
cp ./contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service_bak
#查看ssh版本
ssh -V
#修改sshd_config文件
vim /etc/ssh/sshd_config
#找到'#PermitRootLogin xxx'行,把前面的'#',去掉,把xxx那一串改成'yes',再找到'#PasswordAuthentication yes'行,去掉前面的'#',按Esc键,输入':wq',回车,执行保存并退出
#重启sshd服务。
systemctl daemon-reload
systemctl restart sshd
systemctl status sshd

完成升级SSH。