升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结

本文主要是介绍升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  近期因为openssh相继被漏洞扫描工具扫出存在漏洞,所以考虑升级操作系统中的openssh和openssl为最新版本,来避免漏洞风险。期间的升级过程及遇到的疑难问题,特此记录下来,供有需要的人参考。

  本次目标是升级 openssh9.7p1 版本,升级 openssl1.1.1h 版本。环境为 kylin-SP2 服务器版操作系统。

一、下载源码并编译安装。

1、下载源码。

openssh下载地址:https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/
openssl下载地址:https://github.com/openssl/openssl/releases?page=2

下载好源码上传到服务器上。

2、编译安装(安装问题请参考后边说明)。

解压openssl源码包并编译安装。

tar zxf openssl-1.1.1h.tar.gz
cd openssl-1.1.1h
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make && make install

解压openssh源码包并编译安装。

tar zxf openssh-9.7p1.tar.gz
cd openssh-9.7p1
./configure --prefix=/usr --with-ssl-dir=/usr/local/ssl --sysconfdir=/etc/ssh --with-pam --with-gssapi --with-rsa --with-rhosts-allowed --with-zlib --with-md5-passwords
make && make install

查看openssh和openssl版本号命令:

ssh -V
sshd -v
openssl version

二、常见问题解答

(1)提示缺少 pam 库。

解决方法:

yum install -y pam-devel

(2)提示当前系统的openssl版本和库文件对应不上。

在这里插入图片描述

解决方法1: 一般openssl会涉及到两个库文件,分别为 libcrypto.so.1.1 和 libssl.so.1.1 ,需要检查两个软链接所引用的实际文件的版本号是否与 openssl version 所查看到的版本号相匹配。

解决方法2: 在编译时增加参数:–without-openssl-header-check

(3)升级成功之后使用命令重启ssh,一直处于Active: activating(auto-restart)状态,sshd.service前面显示灰色,不正常。看着并不影响登录使用。

原因分析: 出现报错:sshd.service holdoff time over, scheduling restart. 是因为ssh启动后,没有给systemd发消息,systemd就一直等,超时后就重启ssh,导致ssh频繁挂起,但未启动成功。

解决方法: 修改源码,在 openssh-9.7p1 目录下找到 sshd.c 文件,找到调用 server_accept_loop 函数的地方,在上边增加一行 sd_notify(0, “READY=1”); 然后在源文件开头添加引用头文件 #include <systemd/sd-daemon.h>
在这里插入图片描述在这里插入图片描述完成后还需要确保系统中存在 systemd-devel 软件包才可,然后才能进行安装。安装命令为:yum install systemd-devel
在执行完configure之后会生成预编译文件Makefile,找到变量 LIBS,增加 -lsystemd 最后进行make和make install即可。
在这里插入图片描述

(4)提示不支持的参数:GSSAPIAuthentication、GSSAPICleanupCredentials、RSAAuthentication、RhostsRSAAuthentication。

在这里插入图片描述
解决方法: 在/etc/ssh/sshd_config文件中注释掉上边不支持的参数即可。

sed -i 's/^GSSAPIAuthentication/#&/' /etc/ssh/sshd_config
sed -i 's/^GSSAPICleanupCredentials/#&/' /etc/ssh/sshd_config
sed -i 's/^RSAAuthentication/#&/' /etc/ssh/sshd_config
sed -i 's/^RhostsRSAAuthentication/#&/' /etc/ssh/sshd_config

(5)使用scp命令时提示bad配置参数:GSSAPIKexAlgorithms。

在这里插入图片描述解决方法: 在/etc/crypto-policies/back-ends/openssh.config文件中注释掉上边的配置参数即可。

sed -i 's/^GSSAPIKexAlgorithms/#&/' /etc/crypto-policies/back-ends/openssh.config

在这里插入图片描述

(6)使用ssh命令提示不支持的参数:GSSAPIAuthentication。

在这里插入图片描述
解决方法: 在/etc/ssh/ssh_config.d/05-redhat.conf文件中注释掉上边不支持的参数即可。

sed -i 's/GSSAPIAuthentication/#&/' /etc/ssh/ssh_config.d/05-redhat.conf

在这里插入图片描述

这篇关于升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1031184

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

pycharm跑python项目易出错的问题总结

《pycharm跑python项目易出错的问题总结》:本文主要介绍pycharm跑python项目易出错问题的相关资料,当你在PyCharm中运行Python程序时遇到报错,可以按照以下步骤进行排... 1. 一定不要在pycharm终端里面创建环境安装别人的项目子模块等,有可能出现的问题就是你不报错都安装

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)

《uni-app小程序项目中实现前端图片压缩实现方式(附详细代码)》在uni-app开发中,文件上传和图片处理是很常见的需求,但也经常会遇到各种问题,下面:本文主要介绍uni-app小程序项目中实... 目录方式一:使用<canvas>实现图片压缩(推荐,兼容性好)示例代码(小程序平台):方式二:使用uni

Ubuntu向多台主机批量传输文件的流程步骤

《Ubuntu向多台主机批量传输文件的流程步骤》:本文主要介绍在Ubuntu中批量传输文件到多台主机的方法,需确保主机互通、用户名密码统一及端口开放,通过安装sshpass工具,准备包含目标主机信... 目录Ubuntu 向多台主机批量传输文件1.安装 sshpass2.准备主机列表文件3.创建一个批处理脚