一、升级openssl到1.1.1,不覆盖系统默认安装的openssl
- 查看openssl版本,openssh9.8依赖openssl1.1.1以上版本
#查看版本
openssl version
#查看可执行文件路径
which openssl
/usr/bin/openssl
#查看版本
/usr/bin/openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
- 下载openssl包
3.0版本 https://openssl-library.org/source/
1.0旧版本 https://openssl-library.org/source/old/index.html
wget https://github.com/openssl/openssl/releases/download/OpenSSL_1_1_1h/openssl-1.1.1h.tar.gz
- 解压包,切换到解压后的目录
tar -zxvf openssl-1.1.1h
cd openssl-1.1.1h
- 安装编译所需的依赖
yum install perl-IPC-Cmd perl-Data-Dumper gcc gcc-c++ perl perl-devel -y
- 预编译
./Configure --prefix=/usr/local/openssl/
- 编译和编译安装命令
make && make install
- 设置环境变量
vi /etc/profile
#openssl 1.1.1
export CPPFLAGS="-I/usr/local/ssl/include"
export LDFLAGS="-L/usr/local/ssl/lib"
更新配置
source /etc/profile
- 动态连接器配置文件 /etc/ld.so.conf 文件中写入 /自定义目录(绝对路径)后,ldconfig -v更新动态连接器
vi /etc/ld.so.conf
#新增ssl/lib
/usr/local/ssl/lib/
#更新动态连接器
sudo ldconfig -v
检查动态库链接(可选)
ldd /usr/local/ssl/lib/
- 再查看版本号,两个命令输出一致
openssl version
/usr/local/ssl/bin/openssl version
OpenSSL 1.1.1h 22 Sep 2020
10. 特别注意:
- 当前终端不要关闭,再打开一个终端,如果打开了,证明openssl安装成功了,如果打开不了,回滚,找问题。
- 如果不生效,建议关闭终端重试查看版本号。
- 提示:如果你安装openssl路径是系统默认路径,不是自定义目录,为了避免出现旧版本被删除而新版本安装不成功的情况,你需要对旧版本进行备份。
二、升级 OpenSSH 9.8p1
- 备份
cp -r /etc/ssh /etc/ssh_backup
cp /usr/sbin/sshd /usr/sbin/sshd_backup
- 下载并解压 OpenSSH 9.8p1
下载包地址:(https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/ 或https://openssl-library.org/source/)
wget https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
tar -zxvf openssh-9.8p1.tar.gz
cd openssh-9.8p1
- 安装依赖环境
yum install -y gcc pam-devel zlib-devel openssl-devel make tar
- 编译与安装
--prefix=/usr:指定软件的安装根目录,二进制文件会安装到 /usr/bin 或 /usr/sbin,库文件会安装到 /usr/lib 或 /usr/lib64,头文件会安装到 /usr/include。
--sysconfdir=/etc/ssh:指定软件的配置文件安装目录,配置文件(如 sshd_config、ssh_config)会安装到 /etc/ssh 目录。
为什么用 /etc/ssh?大多数 Linux 系统默认将 OpenSSH 的配置文件放在此目录,保持一致性可以避免路径混乱。
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/ssl
make && make install
- 重启服务并检查服务状态
systemctl restart sshd
systemctl status sshd
版本号 输出应为 "OpenSSH_9.8p1"
ssh -V
OpenSSH_9.8p1, OpenSSL 1.1.1h 22 Sep 2020
查看sshd进程,并验证版本号
ps -ef | grep sshd
sshd: /usr/sbin/sshd
/usr/sbin/sshd -V
OpenSSH_9.8p1, OpenSSL 1.1.1h 22 Sep 2020
安装成功后打印
/etc/ssh/ssh_config already exists, install will not overwrite
/etc/ssh/sshd_config already exists, install will not overwrite
/etc/ssh/moduli already exists, install will not overwrite
/usr/sbin/sshd -t -f /etc/ssh/sshd_config
三、补充:
CentOS 7 系统默认的 OpenSSL 安装目录及相关路径如下
1.可执行文件路径 /usr/bin/openssl
2.库文件路径,动态库:/usr/lib64/libssl.so.* 和 /usr/lib64/libcrypto.so.*,静态库:/usr/lib64/libssl.a 和 /usr/lib64/libcrypto.a
(部分依赖可能位于 /usr/lib/ 目录下)
3.配置文件路径,默认配置文件:/etc/ssl/openssl.cnf