当前位置: 首页 > news >正文

Linux openssl、openssh 升级 保留旧版本

linux中的openssh、openssl漏洞原因升级
各个系统的升级方式大致相同
目前最新版本:

  1. openssl: 3.5.1,
  2. openssh 10.0p1

1. 升级OpenSSL

1.1 下载

https://release-assets.githubusercontent.com/github-production-release-asset/7634677/b9499081-25cc-429f-9091-e3882c37d0a5

1.2 安装C编译环境

apt-get install -y build-essential

yum install perl-IPC-Cmd perl-Data-Dumper gcc gcc-c++ perl perl-devel -y

1.3 解压安装

# 解压
tar -xzf openssl-3.5.1.tar.gz
# 编译
cd openssl-3.5.1
./config --prefix=/opt/openssl-3.5.1
# 安装
make && make install

1.4 环境替换

因不想破坏系统原本的Openssl版本, 因为可能存在在旧版本的基础上编译安装的其他软件包因升级Openssl后不能使用的情况。
所以使用环境覆盖的方式,不改变文件。

1.4.1 环境变量

echo 'export PATH=/opt/openssl-3.5.1/bin:$PATH' >> /etc/profile

1.4.2 动态链接库

# 文件首添加 /opt/openssl-3.5.1/lib64
/etc/ld.so.conf
# 更新动态链接库
ldconfig

1.5 进行验证

ooenssl version

2. 升级OpenSSH

2.1 下载

https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-10.0p1.tar.gz

2.2 安装C编译环境

apt-get install -y zlib1g-dev libpam0g-dev
yum install zlib-devel pam-devel -y

2.3 解压安装

configure注意with-ssl-dir的目录可以手动指定自定义openssl的目录

安装前建议将--sysconfdir=/etc/ssh保留空目录。 因为新旧版本的配置信息和加解秘钥信息可能并不相通或配置过时不支持之类的异常。 将会影响在sshd启动

tar -xzf openssh-10.0p1.tar.gz
cd openssh-10.0p1
mv /etc/ssh /etc/ssh-old
./configure --prefix=/opt/openssh-10.0p1 --with-ssl-dir=/opt/openssl-3.5.1 --sysconfdir=/etc/ssh --with-pam --with-gssapi --with-rsa --with-rhosts-allowed --with-zlib --with-md5-passwords
make && make install

2.4 环境替换

因不想破坏系统原本的OpenSSH版本, 因为可能存在在旧版本的基础上编译安装的其他软件包因升级Openssl后不能使用的情况。
所以使用环境覆盖的方式,不改变文件。

# /etc/profile
PATH="/opt/openssh-10.0p1/bin:/opt/openssh-10.0p1/sbin:$PATH"
# /usr/lib/systemd/system/sshd.service
# 因为我的方式是运行环境变量覆盖替换,而不是替换新旧文件。所以sshd.service中默认启动的还是旧版本编译的sshd程序。需要将其替换成新自定义的执行程序
cp /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service-back
vim /usr/lib/systemd/system/sshd.service
# 执行目标"/opt/openssh-10.0p1/sbin/sshd"

新安装的sshd可能root无法登陆,注意排查sshd -T | grep permitrootlogin

麒麟系统遇到一个问题,通过service服务启动时,遇到报错GSSAPI
其原因大概是因为麒麟系统和readhat类(centos)的系统级加解密有些不一样。

将 /etc/sysconfig/sshd中的CRYPTO_POLICY=设为空,相当于 ​​不强制覆盖​​ SSH 的默认加密配置,允许 SSH 回退到自身的默认算法集合(包括 GSSAPI 所需的支持)。
这样避免了全局加密策略对 GSSAPI 的不兼容限制。

2.5 进行验证

systemctl daemon-reload
systemctl restart sshd
sshd -T # 验证服务参数
ssh -V  #客户端版本
sshd -V #服务端版本
http://www.dtcms.com/a/319832.html

相关文章:

  • 【插件式微服务架构系统分享】之 解耦至上:gateway 网关与APISIX 网关的不同分工
  • React 为什么要自定义 Hooks?
  • 一文解读“Performance面板”前端性能优化工具基础用法!
  • 顺序表——C语言
  • FPGA学习笔记——VGA静态字符的显示(寄存器)
  • SOMGAN:利用自组织映射提高生成对抗网络的模式探索能力
  • 国内PCB批量厂家推荐
  • Linux 文件IO与标准IO的区别解析
  • wordpress安装环境推荐php8.0+mysql5.7
  • Linux Docker 新手入门:一文学会配置镜像加速器
  • 谷歌推出Genie3:世界模型的ChatGPT时刻?
  • 8.3.1 注册服务中心Etcd
  • MHA架构实战
  • 我在学习spring 项目构建时遇到问题,解决JDK最低版本只有17的问题
  • 佳文赏读 || 冶炼钒钛矿高炉操作炉型计算模拟研究
  • 【大前端】vite忽略指定前缀的静态资源
  • 移动端 WebView 登录异常与会话恢复问题全流程排查指南
  • 灯哥FOC笔记-----(1)无刷电机概论和硬件控制原理
  • 高精度惯性导航IMU供应商价格选型
  • 面向制造业的 AI Agent 架构与实战:任务驱动的智能协同新路径
  • 常见命令-资源查看-iostat命令实践
  • React 中 Context(上下文)介绍
  • ReAct Agent 原生代码实现(纯Python实现)
  • OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!
  • 使用RestTemplate发送与接收http/https请求
  • 告别YAML,在SpringBoot中用数据库配置替代配置文件
  • 【JS】扁平树数据转为树结构
  • [激光原理与应用-172]:测量仪器 - 能量(焦耳)与功率(瓦)的图示比较
  • 14-netty基础-手写rpc-提供方(服务端)-06
  • Java NIO 核心原理与秋招高频面试题解析