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

升级最新版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

在这里插入图片描述

相关文章:

  • 【C++题解】1254. 求车速
  • 【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 运输时间(200分) - 三语言AC题解(Python/Java/Cpp)
  • 排查互联网敏感信息,对信息泄露说“不”
  • 两种AI 图像生成技术:MidJourney 和 Stable Diffusion
  • 通过影刀RPA,创建定时任务,自动获取图片验证码登录平台;
  • 软件三班20240605
  • 经典的泡泡龙游戏源码免费下载
  • npm有哪些插件包??
  • 如何在另一台电脑上使用相同的Python环境和依赖包
  • postgresql之翻页优化
  • web-上传项目文件夹到Git远程仓库
  • 人工智能系统越来越擅长欺骗我们?
  • Nvidia Jetson/Orin/算能 +FPGA+AI大算力边缘计算盒子:加油站安全智能检测系统
  • 2003NOIP普及组真题 3. 栈
  • “Apache Kylin 实战指南:从安装到高级优化的全面教程
  • [PHP内核探索]PHP中的哈希表
  • __proto__ 和 prototype的关系
  • 「前端早读君006」移动开发必备:那些玩转H5的小技巧
  • 【Amaple教程】5. 插件
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • Centos6.8 使用rpm安装mysql5.7
  • Date型的使用
  • JavaScript 奇技淫巧
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel 菜鸟晋级之路
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MyEclipse 8.0 GA 搭建 Struts2 + Spring2 + Hibernate3 (测试)
  • 对JS继承的一点思考
  • 通信类
  • 详解NodeJs流之一
  • 3月27日云栖精选夜读 | 从 “城市大脑”实践,瞭望未来城市源起 ...
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 数据库巡检项
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • ​configparser --- 配置文件解析器​
  • ​Java基础复习笔记 第16章:网络编程
  • #DBA杂记1
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #nginx配置案例
  • #php的pecl工具#
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (~_~)
  • (1)(1.13) SiK无线电高级配置(六)
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (solr系列:一)使用tomcat部署solr服务
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (一)WLAN定义和基本架构转
  • (已解决)报错:Could not load the Qt platform plugin “xcb“
  • (转)程序员疫苗:代码注入
  • (自用)网络编程
  • **CI中自动类加载的用法总结
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException