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. Mysql高级11-后台进程

    一.前言 MySQL的服务实现通过后台多个线程.内存池.文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务.MySQL常用的后台线程概括如下,分为Maste ...

  2. 介绍五个很实用的IDEA使用技巧

    日常开发中,相信广大 Java 开发者都使用过 IntelliJ IDEA 作为开发工具,IntelliJ IDEA 是一款优秀的 Java 集成开发环境,它提供了许多强大的功能和快捷键,可以帮助开发 ...

  3. 【Qt6】列表模型——树形列表

    QStandardItemModel 类作为标准模型,主打"类型通用",前一篇水文中,老周还没提到树形结构的列表,本篇咱们就好好探讨一下这货. 还是老办法,咱们先做示例,然后再聊知 ...

  4. python系列:argparse详解 外部传参给python的库

    一.argparse简介 argparse 模块是 Python 内置的用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口,能够帮助程序员为模型定义参数. ar ...

  5. Java 魔法值处理的四种方法

    Java 魔法值处理方案 魔法值的定义 方法一 静态常量(不推荐) 方法二 接口中定义 方法三 定义在实体类 方法四 使用枚举类 enum 总结 魔法值的定义 魔法值是Java中突兀出现在代码中的常量 ...

  6. AI图形算法的应用之一:通过图片模板对比发现油田漏油

    最近研究了一下OPENCV的图像算法,开发了一个小应用. 可以通过图像和模板进行对比,发现油田或其他作业区漏油. 直接上效果,模板如下 自己模拟了一个漏油的现场图片,如下 通过图形化算法,找到漏油点, ...

  7. PortAudio详解(2015年12月1日更新)

    PortAudio详解 整理者:赤子玄心 QQ:280604597 Email:280604597@qq.com 大家有什么不明白的地方,或者想要详细了解的地方可以联系我,我会认真回复的 1   简介 ...

  8. 从零用VitePress搭建博客教程(1) – VitePress的安装和运行

    1.从零用VitePress搭建博客说明(1) – VitePress的安装和运行 一.写在前面 最近在想更新一把自己的前端吧小博客,但发现wordPress版本停留在了5年之前,发现变化挺大,不支持 ...

  9. InfiniBand 的前世今生

    今年,以 ChatGPT 为代表的 AI 大模型强势崛起,而 ChatGPT 所使用的网络,正是 InfiniBand,这也让 InfiniBand 大火了起来.那么,到底什么是 InfiniBand ...

  10. off-line RL | CQL:魔改 Bellman error 更新,得到 Q 函数 lower-bound

    论文题目: Conservative Q-Learning for Offline Reinforcement Learning CQL 是师兄盛赞的一篇论文:"是 off-line RL ...