centos9 升级 openssh版本到 9.3.2p2 后 sshd重新启动后出现不断重启,表现状态一直处于Active: activating(auto-restart)的处理方式

本文讲述了如何在CentOS9中升级OpenSSH到9.3.2p2版本时遇到的问题,涉及systemd-devel安装、sshd.c文件编辑、Makefile修改以及常见依赖库和编译错误的解决方法。
摘要由CSDN通过智能技术生成

错误描述:

因管理要求要将openssh升级到最新版,所以手动下载了openssh 9.3.2p2的版本,编译安装后再重新启动sshd时sshd状态一直处于不断的重启中,systemctl status sshd查看一直处于activating(auto-restart)状态,sshd.service前面显示灰色,不正常。

解决方法

1、安装systemd-devel(sd_notify函数依赖)

yum install systemd-devel

2、进入源码目录,编辑sshd.c文件

大约在2099行左右进行如下添加:


                sd_notify(0, "READY=1");
                /* Accept a connection and return in a forked child */
                server_accept_loop(&sock_in, &sock_out, 
                        &newsock, config_s);

并在头部include部分添加头文件:

#include <systemd/sd-daemon.h>

3、编辑Makefile文件

修改第51行,  LIBS=, 原来这个为空,添加如下,最重要的是后面这个 -lsystemd:

LIBS=-lcrypto -ldl -lutil -lz -lcrypt -lresolv -lsystemd

4、编译安装

make & make install

5、重启sshd服务

systemctl reload sshd

systemctl restart sshd

编译安装openssh-9.3.2p2常见错误解决

在编译安装OpenSSH的过程中,常见的错误及解决方法如下:

  1. 缺少必要的依赖库:在编译安装OpenSSH之前,需要确认系统中已安装了必要的依赖库,例如OpenSSL、Zlib等。如果缺少依赖库,可以通过包管理器安装或下载源代码手动编译安装。

  2. 配置文件错误:在执行./configure命令时,可能会遇到配置文件错误。这可能是由于系统缺少一些必要的功能或库。可以通过查看错误信息以及配置文件中的选项来解决问题。需要确保配置文件中的选项正确,并安装相应的库以支持所需的功能。

  3. 编译错误:在执行make命令时,可能会遇到编译错误。这可能是由于源代码错误、编译器版本不兼容等原因导致的。可以通过查看错误信息来定位问题,并根据错误信息采取相应的解决方法。有时可能需要升级编译器或更新源代码。

  4. 安装错误:在执行make install命令时,可能会遇到安装错误。这可能是由于权限问题或目标目录不存在等原因导致的。可以通过查看错误信息来解决问题,并确保具有足够的权限执行安装命令。如果目标目录不存在,可以手动创建目录并设置正确的权限。

常见依赖库

  1. OpenSSL:OpenSSH依赖于OpenSSL库进行加密和身份验证。在CentOS 9上,可以使用以下命令安装OpenSSL库:

    sudo dnf install openssl-devel
    
  2. zlib:OpenSSH还依赖于zlib库用于数据压缩。在CentOS 9上,可以使用以下命令安装zlib库:

    sudo dnf install zlib-devel
    
  3. libcrypto和libssl:这两个库是OpenSSL的一部分,但在某些情况下,也需要单独安装。在CentOS 9上,可以使用以下命令安装这两个库:

    sudo dnf install libcrypto-devel libssl-devel
    

以上是在CentOS 9上安装OpenSSH所需的一些常见依赖库。请注意,具体依赖库可能因不同的系统版本和配置而有所差异,可以根据实际情况进行调整。

常见编译错误:

  1. 错误:未找到zlib库 解决方案:确保系统中安装了zlib库,并在编译时指定zlib库的路径。

  2. 错误:未找到OpenSSL库 解决方案:确保系统中安装了OpenSSL库,并在编译时指定OpenSSL库的路径。

  3. 错误:未找到libcrypto库 解决方案:确认系统中安装了OpenSSL并且libcrypto库存在,并在编译时指定libcrypto库的路径。

  4. 错误:未找到libssl库 解决方案:确认系统中安装了OpenSSL并且libssl库存在,并在编译时指定libssl库的路径。

  5. 错误:未找到pam库 解决方案:确保系统中安装了pam库,并在编译时指定pam库的路径。

  6. 错误:未找到libkrb5库 解决方案:确保系统中安装了libkrb5库,并在编译时指定libkrb5库的路径。

  7. 错误:未找到libwrap库 解决方案:确保系统中安装了libwrap库,并在编译时指定libwrap库的路径。

  8. 错误:未找到liblzma库 解决方案:确保系统中安装了liblzma库,并在编译时指定liblzma库的路径。

  9. 错误:未找到libpcre库 解决方案:确保系统中安装了libpcre库,并在编译时指定libpcre库的路径。

  10. 错误:未找到libgssapi_krb5库 解决方案:确保系统中安装了libgssapi_krb5库,并在编译时指定libgssapi_krb5库的路径。

安装目录配置问题

编译时可以指定目录,否则默认安装在/usr/local下面,config文件也是/usr/local/etc下

 这样默认可以覆盖原有的

configure --prefix=/usr --sysconfdir=/etc/ssh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小果运维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值