CentOS7 OpenSSL升级到OpenSSH9.5p1

2023-12-13 05:46:52

原文链接:
CentOS7 OpenSSL升级1.1.1w;OpenSSH 升级 9.5p1 保姆级教程
openssl从3.1.0升级到3.1.1遇到的问题
一、 前言
OpenSSH 的加密功能需要用到OpenSSL,所以在升级OpenSSH的时候,大部分情况是需要将OpenSSL一起升级的。

这里我们选择先升级OpenSSL到OpenSSL 1.1.1w 11 Sep 2023

然后再升级OpenSSH 到OpenSSH_9.5p1, OpenSSL 1.1.1w 11 Sep 2023

两个都是最新版本,方便大家食用。

1.1 注意点
在升级之前先将需要的包上传到服务器,以免升级失败后导致上传文件失败。(这里我用的sftp上传,sftp的核心也需要用到SSH),并安装telnet-server服务保证SSH升级失败后,可以继续远程连接。

需要有初始yum源,要不然安装这两个服务众多的依赖包将会是梦魇。

原始版本信息如下。

二、升级OpenSSL
2.1 安装依赖

yum -y install gcc*

2.2备份、卸载原有OpenSSL
1、 查找openssl 相关目录,然后备份

[root@vm206 etc]# whereis openssl

openssl: /usr/bin/openssl /usr/lib64/openssl /usr/share/man/man1/openssl.1ssl.gz

[root@vm206 etc]# mv /usr/bin/openssl /usr/bin/openssl.old

[root@vm206 etc]# mv /usr/lib64/openssl /usr/lib64/openssl.old

2、 卸载 openssl (这一步看个人需要,我有洁癖所以我卸载了)

yum remove openssl
2.3安装openssl
tar -xzvf openssl-1.1.1w.tar.gz

cd openssl-1.1.1w/

./config --prefix=/usr

make && make install
#这里我的目录选择了/usr 是因为系统最初始的openssl的目录就是/usr 这样可以省去的软连接、更新链接库的问题

2.4验证
[root@vm206 openssl-1.1.1w]# whereis openssl

openssl: /usr/bin/openssl /usr/lib64/openssl /usr/include/openssl /usr/share/man/man1/openssl.1ssl.gz /usr/share/man/man1/openssl.1

[root@vm206 openssl-1.1.1w]# openssl version

OpenSSL 1.1.1w 11 Sep 2023
#可以看到我这边的目录和老版本的openssl的目录保持了一致,唯一不同的是多了一个/usr/include/openssl 库目录

#如果不加prefix ,openssl的默认路径如下

Bin: /usr/local/bin/openssl

include库 :/usr/local/include/openssl

lib库:/usr/local/lib64/

engine库:/usr/lib64/openssl/engines

三、 升级OpenSSH
3.1 安装telnet-server

yum install telnet* -y

systemctl start telnet.socket

systemctl enable telnet.socket

mv /etc/securetty /etc/securetty.bak

#临时关闭安全登录,否则无法进行远程telnet连接

#有防火墙记得关闭防火墙,并关闭SELinux

#如上,已经可以通过telnet远程连接了,这下可以放心大胆的操作了。

3.2 安装依赖包
yum install -y gcc pam-devel rpm-build wget zlib-devel openssl-devel net-tools
3.3 备份

#通过whereis ssh sshd找出bin文件、源文件,然后备份。 man手册不需要备份。

mv /etc/ssh /etc/ssh.bak

mv /usr/bin/ssh /usr/bin/ssh.bak

mv /usr/sbin/sshd /usr/sbin/sshd.bak

mv /etc/pam.d/sshd /etc/pam.d/sshd.old
#备份pam验证文件

3.4卸载旧版OpenSSH

yum remove openssh

3.5安装新版OpenSSH
tar -xzvf openssh-9.5p1.tar.gz

cd openssh-9.5p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/lib64/
#其中–prefix --sysconfdir 这两个参数我仍然采用了系统之前的默认路径,避免路径混乱导致的问题

make

make install

cd /etc/pam.d/

mv sshd.old sshd
#恢复ssh pam认证

cd openssh-9.5p1/

cp contrib/redhat/sshd.init /etc/init.d/sshd

chkconfig --add sshd

systemctl enable sshd

systemctl start sshd

#可以看到,已经升级成功
在这里插入图片描述

3.6修改/etc/ssh/sshd_config 配置文件
文件修改如下,然后重启sshd服务即可在这里插入图片描述 在这里插入图片描述在这里插入图片描述

   登录成功界面

在这里插入图片描述
问题
configure: error: OpenSSL >= 1.1.1 required
原因
原因是,我上一次修复BUG时,把openssl版本直接从1.1.1t升级到了3.1.0,需要的lib类库也需要从libssl.so.1.1更新到libssl.so.3,这一次同样是3版本,我以为不用更新了,所以出现了上面的错误;

解决办法
进入安装好的/usr/local/openssl311/lib64目录下(openssl311是自定义的,选择自己的安装目录),将libssl.so.3文件和libcrypto.so.3文件复制到/usr/lib64目录下,选择覆盖;

升级过程
下载:wget https://www.openssl.org/source/openssl-3.1.1.tar.gz,我下载到了/opt目录下
解压:tar -xzvf openssl-3.1.1.tar.gz
进入解压后目录:cd openssl-3.1.1
配置安装目录:./config --prefix=/usr/local/openssl311
编译安装:make && make install
本地查看是否成功:/usr/local/openssl311/bin/openssl version -a
出现问题,解决后可正常显示新版本,或无问题,继续下一步
软链接:进入/usr/bin目录,查询openssl的软链接,如果指定的是旧版本,使用unlink /usr/bin/openssl命令取消软链接
创建新软链接:ln -s /usr/local/openssl311/bin/openssl /usr/bin/openssl
刷新命令库:ldconfig
在任一目录直接验证:openssl version -a,可查看到新版本

文章来源:https://blog.csdn.net/qq_30359369/article/details/134954151
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。