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

oracle linux 95 升级openssh 10 和openssl 3.5 过程记录

1.  安装操作系统,注意如果可以选择,选择安装开发工具,主要是后续需要编译安装,需要gcc 编译工具。

2. 安装操作系统后,检查zlib 、zlib-dev是否安装,如果没有,可以使用安装镜像做本地源安装,在编译openssh 需要使用。

(1)  挂载安装镜像

   mount  /dec/cdrom /mnt

(2) 修改yum 配置

(3) yum makecache

     

 (4) 安装gcc 

    yum install gcc

3. 安装操作系统后,检查perl 是否安装,如果没有,可以使用安装镜像做本地源安装,编译openssl 的脚本是使用perl编写的。 

4. 编译安装openssl 

(1)上传解压

 (2)./Configure --prefix=/usr/local/openssl 

   (3)  make

   (4) make install 

  make 和make install的过程比较长,需耐心等待。如果没有报错则进行下一步,如果有报错需要解决报错问题。

 (5)执行如下操作:

     mv   /usr/bin/openssl /usr/bin/openssl.bk

     mv  /usr/include/openssl   /usr/include/openssl.bk    (oraclelinux 95 中没有这个目录)

     cp  /usr/local/openssl/bin/openssl /usr/bin/openssl    ( 替代就版本的执行程序)

     cp -R /usr/local/openssl/include/   /usr/include/   

         (注意最后的斜线,意识就是将include下的opessl目录拷贝到对应 目录中)

      

   这时 openssl version命令会报错:

     

       

  原因在于openssl 编译安装后的新版本的lib库文件还没有与系统关联

  之前的做法是使用以下方式强行关联

        export LD_LIBRAY_PATH = /usr/local/openssl/lib64:$LD_LIBRARY_PATH 

       ldconfig -v 

   这样暂时看到openssl version  是可以执行成功的,但打开终端时会报错:  

     flatpak:symbol lookup error:  /lib64/libldap.so.2: undefined symbol:EVP md2,version OPENSSL 3.0.0

   实际上上无需如此,报错的两个文件实际上在编译安装后的/usr/local/openssl/lib64目录中是存在的,只需建立软连接即可。注意软连接要先删除再创建,直接用cp覆盖是不行的。

     rm /lib64/libssl.so.3

     rm /lib64/libcrypto.so.3

    ln -s /usr/lcoal/openssl/lib64/libcrypto.so.3  /lib64/libcrypto.so.3

     ln -s /usr/lcoal/openssl/lib64/libssl.so.3  /lib64/libssl.so.3

  (6)检查:

       执行 openssl  version 看下,或者ssh -V 看下openssl 的版本是否 升级到新版本

       重启系统,再检查下openssl的版本,并打开一个终端,看是否有报错。 

    

5.  编译安装openssh

(1)上传解压

 (2)   ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-openssl-inludes=/usr/local/openssl/include -with-ssl-dir=/usr/local/openssl --with-zlib --with-pam

注: 如果不使用pam 也可以不用带后面这个with-pam参数。  

   (3)make

   (4)  make install

http://www.xdnf.cn/news/476749.html

相关文章:

  • kubernetes的service与服务发现
  • 7 个正则化算法完整总结
  • 快慢指针算法(Floyd 判圈算法)
  • pytorch 15.1 学习率调度基本概念与手动实现方法
  • SSH认证核心机制
  • 索恩格汽车SEG Automotive EDI 需求分析
  • 用 Rust 带你了解 TCP 和 UDP
  • Neo4j(一) - Neo4j安装教程(Windows)
  • 事件驱动架构:从传统服务到实时响应的IT新风潮
  • 泰迪杯特等奖案例深度解析:基于多模态融合与小样本学习的工业产品表面缺陷智能检测系统
  • 主流数据库运维故障排查卡片式速查表与视觉图谱
  • PCIe数据采集系统详解
  • Python Poetry使用教程
  • llamafactory SFT 从断点恢复训练
  • 论文阅读:Self-Collaboration Code Generation via ChatGPT
  • uniapp-商城-58-后台 新增商品(属性子级的添加和更新)
  • Axure设计的“广东省网络信息化大数据平台”数据可视化大屏
  • 基于大模型预测的脑出血全流程诊疗技术方案
  • IDEA:程序编译报错:java: Compilation failed: internal java compiler error
  • Java 使用 PDFBox 提取 PDF 文本并统计关键词出现次数(附Demo)
  • uniapp-商城-59-后台 新增商品(属性的选中,进行过滤展示,filter,some,every和map)
  • 深入解析VPN技术原理:安全网络的护航者
  • 金融问答系统:如何用大语言模型打造高精度合规的金融知识引擎
  • math toolkit for real-time development读书笔记一-三角函数快速计算(1)
  • Oracle 批量操作脚本解析:动态执行与分批次删除
  • STM32就业前景和下载KEIL软件(保姆级)
  • MongoDB分片集群
  • 自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件
  • Deeper and Wider Siamese Networks for Real-Time Visual Tracking
  • 香港 GPU 服务器优势及使用场景解析