1、安装 openssl-1.1.1

先处理下opensll的版本,以免编译安装Openssh环境异常:

yum remove openssl
cd /opt
wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz
tar -zxvf openssl-1.1.1n.tar.gz
cd openssl-1.1.1n/
./config --prefix=/opt/openssl # 指定 OpenSSL 的安装目录为 /opt/openssl
make depend
make && make install
ln -sf /opt/openssl/bin/openssl /usr/bin/openssl #需要默认在/usr/bin/下创建openssl的软连接
echo "/opt/openssl/lib/" >> /etc/ld.so.conf #需要在环境变量中增加这一行代码
ldconfig -v #使配置生效
openssl version

配置环境变量,在末尾加入代码 echo "/opt/openssl/lib/" >> /etc/ld.so.conf

2、编译安装Openssh高版本(升级openssh版本)

此操作不适合远程ssh登录使用,一般情况下要在本地控制台操作(如果已经yum安装过ssh,需要先卸载老版本)

yum remove openssh
cd /opt
wget https://mirrors.aliyun.com/openssh/openssh-9.4.tar.gz
tar -zxvf openssh-9.4.tar.gz
cd /opt/openssh-9.4
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-ssl-dir=/opt/openssl --with-pam
make
make install
  • --prefix=/usr/local/openssh:指定安装目录为 /usr/local/openssh。这样,编译后的二进制文件、配置文件等将被安装到这个目录。
  • --sysconfdir=/etc/ssh:指定配置文件存放的目录为 /etc/ssh
  • --with-ssl-dir=/opt/openssl:指定 OpenSSL 的安装目录为 /opt/openssl。这是告诉 OpenSSH 在编译和链接时使用指定目录下的 OpenSSL 库。
  • --with-pam:启用对 PAM (Pluggable Authentication Modules) 的支持,允许使用 PAM 进行身份验证(安全基线配置)。

OpenSSH安装路径解读:

通过 yum 安装的 OpenSSH 通常会将文件安装到系统默认的目录结构。以下是一般情况下 OpenSSH 安装的主要目录:

  1. 可执行文件: 安装的 OpenSSH 可执行文件通常位于 /usr/bin/ 目录下。

  2. 配置文件: 配置文件通常位于 /etc/ssh/ 目录下。主要的配置文件是 sshd_config(SSH 服务器配置)和 ssh_config(SSH 客户端配置)。

  3. 密钥文件: SSH 密钥文件通常位于 /etc/ssh/ 目录下,包括主机密钥、用户密钥等。

  4. 系统服务文件: 系统服务文件通常位于 /usr/lib/systemd/system/ 目录下。例如,sshd.service 文件描述了 OpenSSH 服务器的 systemd 服务。

如果您想查看已安装的文件的详细信息,您可以使用以下命令:rpm -ql openssh

root@test-t01:/opt#rpm -ql openssh
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ctr-cavstest
/usr/libexec/openssh/ssh-keysign
/usr/share/doc/openssh-7.4p1
/usr/share/doc/openssh-7.4p1/CREDITS
/usr/share/doc/openssh-7.4p1/ChangeLog
/usr/share/doc/openssh-7.4p1/INSTALL
/usr/share/doc/openssh-7.4p1/OVERVIEW
/usr/share/doc/openssh-7.4p1/PROTOCOL
/usr/share/doc/openssh-7.4p1/PROTOCOL.agent
/usr/share/doc/openssh-7.4p1/PROTOCOL.certkeys
/usr/share/doc/openssh-7.4p1/PROTOCOL.chacha20poly1305
/usr/share/doc/openssh-7.4p1/PROTOCOL.key
/usr/share/doc/openssh-7.4p1/PROTOCOL.krl
/usr/share/doc/openssh-7.4p1/PROTOCOL.mux
/usr/share/doc/openssh-7.4p1/README
/usr/share/doc/openssh-7.4p1/README.dns
/usr/share/doc/openssh-7.4p1/README.platform
/usr/share/doc/openssh-7.4p1/README.privsep
/usr/share/doc/openssh-7.4p1/README.tun
/usr/share/doc/openssh-7.4p1/TODO
/usr/share/licenses/openssh-7.4p1
/usr/share/licenses/openssh-7.4p1/LICENCE
/usr/share/man/man1/ssh-keygen.1.gz
/usr/share/man/man8/ssh-keysign.8.gz
root@test-t01:/opt#

这将列出 openssh 软件包中安装的所有文件及其路径。根据不同的系统版本和软件包版本,目录结构可能会有轻微的变化,因此请根据您的系统具体情况进行适当的调整。

这是另一种操作方式(不卸载旧版本,可远程操作。不保证是否靠谱,仅供参考)


升级 OpenSSL 和 OpenSSH 到新版本并确保系统中不会存在多个版本可能涉及一些详细的步骤。以下是大致的流程:

1. 升级 OpenSSL

  1. 备份系统: 在进行任何更改之前,请确保备份关键数据和系统。

  2. 下载 OpenSSL 源代码:

    wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
  3. 解压缩源代码:

    tar -zxvf openssl-1.1.1l.tar.gz
    cd openssl-1.1.1l
  4. 配置、编译和安装 OpenSSL:

    ./config --prefix=/usr/local/openssl --openssldir=/usr/local/openssl shared zlib
    make
    sudo make install
  5. 更新动态链接库缓存:

    sudo ldconfig

2. 升级 OpenSSH

  1. 备份系统: 再次确保备份关键数据和系统。

  2. 下载 OpenSSH 源代码:

    wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz
  3. 解压缩源代码:

    tar -zxvf openssh-9.4p1.tar.gz
    cd openssh-9.4p1
  4. 配置、编译和安装 OpenSSH,指定 OpenSSL 路径:

    ./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-pam
    make
    sudo make install
  5. 备份原有的 OpenSSH 配置文件:

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup
    sudo cp /etc/ssh/ssh_config /etc/ssh/ssh_config_backup
  6. 重启 ssh 服务:

    sudo systemctl restart sshd

3. 验证和清理

  1. 验证版本:

    /usr/local/openssh/bin/ssh -V

    这应该显示您新安装的 OpenSSH 的版本信息。

  2. 验证 OpenSSL 版本:

    /usr/local/openssl/bin/openssl version

    这应该显示您新安装的 OpenSSL 的版本信息。

  3. 清理: 如果一切都正常,您可以选择删除旧版本的 OpenSSL 和 OpenSSH。首先,确保一切工作正常。

  4. 更新库链接:

    sudo ldconfig

请注意,这些步骤可能因系统和软件版本而异。在进行这些更改之前,请确保已经理解了潜在的影响,并在测试环境中进行测试。

清理旧版本OpenSSL :

确保避免与系统默认版本的 OpenSSL 冲突,您需要确保在运行 OpenSSL 命令时使用新安装的 OpenSSL 路径。以下是一些建议的步骤:

  1. 设置环境变量:

    在新版本 OpenSSL 安装后,您可以设置 PATH 环境变量,以便系统可以找到新版本的 OpenSSL 执行文件。将新 OpenSSL 安装目录的 bin 子目录添加到 PATH

    export PATH=/usr/local/openssl/bin:$PATH

    这样,系统将首先在 /usr/local/openssl/bin 中查找可执行文件,而不是系统默认路径。

  2. 验证 OpenSSL 版本:

    在设置好环境变量后,通过运行以下命令验证系统是否使用新版本的 OpenSSL:

    openssl version

    这应该显示您新安装的 OpenSSL 的版本信息。

  3. 确认配置文件路径:

    如果您的应用程序或服务需要 OpenSSL,确保它们引用新版本的 OpenSSL 路径。通常情况下,应用程序将查找环境变量或配置文件以确定要使用的 OpenSSL 路径。

    如果有需要,您还可以在运行 OpenSSL 命令时使用绝对路径来确保使用正确的版本。

  4. 更新库链接:

    在新版本的 OpenSSL 安装后,执行以下命令,以便系统能够找到新的共享库:

    sudo ldconfig

    这将更新系统的共享库缓存。

通过上述步骤,您应该能够成功使用新版本的 OpenSSL,而不与系统默认版本产生冲突。在使用新版本 OpenSSL 的过程中,确保应用程序和服务配置正确,以便它们能够找到并使用新版本。

卸载旧版本OpenSSH:

  1. 确保新版本 OpenSSH 正常运行: 在卸载旧版本之前,请确保新版本的 OpenSSH 能够正常工作。验证系统中的其他应用程序和服务是否与新版本的 OpenSSH 兼容。

  2. 备份系统: 在进行任何卸载操作之前,强烈建议对系统进行完整备份。这样,如果出现问题,您可以还原系统到升级前的状态。

  3. 查找旧版本 OpenSSH 的安装位置: 使用 rpm 或其他包管理工具,查找和记录系统上安装的旧版本 OpenSSH 的软件包名。例如:

    rpm -qa | grep openssh

    这将列出安装在系统上的 OpenSSH 软件包。

  4. 卸载旧版本 OpenSSH: 使用包管理工具卸载旧版本 OpenSSH。例如,如果您使用的是 yum,可以运行:

    sudo yum remove openssh-old-version-package

    请替换 openssh-old-version-package 为您找到的旧版本 OpenSSH 软件包的实际名称。

  5. 清理依赖关系: 运行包管理工具的清理命令,以确保系统不再依赖于已卸载的旧版本 OpenSSH:

    sudo yum autoremove
  6. 验证新版本 OpenSSH: 再次验证新版本的 OpenSSH 是否正常运行。确保系统和应用程序仍然能够正确使用新版本。

  7. 更新库链接: 执行以下命令,以确保系统的共享库缓存已更新:

    sudo ldconfig

上述步骤主要是一个通用的指南。在执行这些步骤之前,请确保您理解操作的风险,并在测试环境中进行操作以确保系统的稳定性。

编译安装openssl-1.1.1和openssh-9.4的更多相关文章

  1. CentOS7 安装 OpenSSL 1.0.1m 和 OpenSSH 6.8p1

    # 下载软件 wget http://zlib.net/zlib-1.2.8.tar.gz wget ftp://ftp.openssl.org/source/openssl-1.0.1m.tar.g ...

  2. Windows编译安装OpenSSL

    windows下使用vs2008中的nmake编译安装openssl的脚本build.bat: echo off & color 0A :: 项目名称 set PROJECT=openssl ...

  3. 编译安装openssl报错:POD document had syntax errors at /usr/bin/pod2man line 69. make: *** [install_docs]

    错误如下: cms.pod around line 457: Expected text after =item, not a number cms.pod around line 461: Expe ...

  4. centos下编译安装Openssl

    yum install -y zlib*mkdir /datacd /data下载好tar包tar zxf openssl-1.0.2g.tar.gzcd openssl-1.0.2g./config ...

  5. 编译安装openssl

    wget https://www.openssl.org/source/openssl-1.1.0g.tar.gztar xf openssl-1.1.0g.tar.gzcd openssl-1.1. ...

  6. ubuntu编译安装openssl

    http://blog.bccn.net/%E9%9D%99%E5%A4%9C%E6%80%9D/66642 su root  不然权限不够 cd /usr/src wget https://www. ...

  7. Linux 从源码编译安装 OpenSSH

    https://blog.csdn.net/bytxl/article/details/46639073 Linux 从源码编译安装 OpenSSH以及各问题解决 2015年06月25日 17:37: ...

  8. centos 编译安装nginx

    这里选用的是nginx-1.10.1稳定版,其基础依赖库有gcc.gcc-c++.pcre.zlib和openssl. pcre.zlib和openssl这三个依赖库在安装nginx时无需编译安装,下 ...

  9. CentOS 7编译安装Tengine+PHP+MariaDB全程笔记

    安装环境:CentOS7 3.10.0-693.5.2.el7.x86_64 准备源码包: pcre-8.41.tar.gz openssl-1.0.1h.tar.gz zlib-1.2.11.tar ...

  10. Linux上编译安装PHP

    这篇文章主要介绍了关于Linux上编译安装PHP,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 之前在服务器上编译安装了PHP运行环境,但是安装完过了一段时间就差不多忘记了,只是零零星 ...

随机推荐

  1. zabbix 警报推送至企业微信(图文版)

    新增Python脚本 # encoding: utf-8 import sys import requests import json import os import time import re ...

  2. 快速搭建SpringBoot3.x项目

    写在前面 上一小节中我们从0到1 使用Vite搭建了一个Vue3项目,并集成了Element Plus 实现了一个简单的增删改查页面. 这一篇中我们将使用IDEA快速搭建一个SpringBoot3.x ...

  3. 开源.NetCore通用工具库Xmtool使用连载 - 扩展动态对象篇

    [Github源码] <上一篇> 介绍了Xmtool工具库中的图形验证码类库,今天我们继续为大家介绍其中的扩展动态对象类库. 扩展动态对象是整个工具库中最重要的一个设计.在软件开发过程中, ...

  4. JAVA实现单链表修改和删除数据节点

    JAVA实现单链表修改和删除数据节点 一.修改单链表中的一个节点 ①实现思路 因为带头节点的链表中头节点的next域不能发生改变(始终指向单链表的头节点),否则将找不到该链表.所以我们需要先找一个辅助 ...

  5. MySQL系列之主从复制进阶——延时从库、半同步、过滤复制、GTID复制

    目录 1. 延时从库 1.1介绍 1.2 为什么要有延时从 1.3 配置延时从库 1.4 延时从库应用 1.4.1 故障恢复思路 1.4.2 故障模拟及恢复 2. 半同步 *** 2.1 半同步复制工 ...

  6. Vue项目——尚品会

    1: 项目的初始化 环境要求:node + webpack + 淘宝镜像 初始化项目: vue create 项目名称 目录/文件分析: - node_modules文件夹:放置项目依赖的地方 - p ...

  7. Vue2系列(lqz)——Vue生命期钩子、组件

    文章目录 Vue声明期钩子 组件 1 fetch和axios 1.1 fetche使用 1.2 axios的使用 2 计算属性 2.1 通过计算属性实现名字首字母大写 2.2 通过计算属性重写过滤案例 ...

  8. Spring框架中 依赖注入和控制反转,最简单、最通俗的解释! 再加上一个AOP

    首先依赖注入 == 控制反转,只不过控制反转这个词汇,让人产生了错误的理解,才使用新的词汇:依赖注入来替换到这个词汇. "依赖注入"是指一个对象应用另外一个对象来提供一个特殊的能力 ...

  9. oracle下载安装教程(带安装包)

    废话不多说上连接: 链接:https://pan.baidu.com/s/1ukUjxbTpodxwxoGQUKl8KA?pwd=y6ju 提取码:y6ju oracle下载速度太慢了我存在了百度网盘 ...

  10. 算法学习笔记(3.1): ST算法

    ST表 在RMQ(区间最值)问题中,著名的ST算法就是倍增的产物.ST算法可以在 \(O(n \log n)\) 的时间复杂度能预处理后,以 \(O(1)\) 的复杂度在线回答区间 [l, r] 内的 ...