OpenSSH升级9.8p1

一、升级openssl到1.1.1,不覆盖系统默认安装的openssl
  1. 查看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
  1. 下载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
  1. 解压包,切换到解压后的目录
tar -zxvf openssl-1.1.1h
cd openssl-1.1.1h
  1. 安装编译所需的依赖
yum install perl-IPC-Cmd perl-Data-Dumper gcc gcc-c++ perl perl-devel -y
  1. 预编译
./Configure --prefix=/usr/local/openssl/
  1. 编译和编译安装命令
make && make install
  1. 设置环境变量
vi /etc/profile
#openssl 1.1.1
export CPPFLAGS="-I/usr/local/ssl/include"
export LDFLAGS="-L/usr/local/ssl/lib"

更新配置

source /etc/profile
  1. 动态连接器配置文件 /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/
  1. 再查看版本号,两个命令输出一致
openssl version
/usr/local/ssl/bin/openssl version

OpenSSL 1.1.1h  22 Sep 2020
10. 特别注意:
  1. 当前终端不要关闭,再打开一个终端,如果打开了,证明openssl安装成功了,如果打开不了,回滚,找问题。
  2. 如果不生效,建议关闭终端重试查看版本号。
  3. 提示:如果你安装openssl路径是系统默认路径,不是自定义目录,为了避免出现旧版本被删除而新版本安装不成功的情况,你需要对旧版本进行备份。
二、升级 OpenSSH 9.8p1
  1. 备份
cp -r /etc/ssh /etc/ssh_backup
cp /usr/sbin/sshd /usr/sbin/sshd_backup
  1. 下载并解压 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
  1. 安装依赖环境
yum install -y gcc pam-devel zlib-devel openssl-devel make tar
  1. 编译与安装
    --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
  1. 重启服务并检查服务状态
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

参考

linux平台的几种动态库路径设置方法

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容