fsck 修复后,sshd 立即发生核心转储

fsck 修复后,sshd 立即发生核心转储

我有一台 centos 服务器,最近需要对主硬盘进行 fsck 修复。修复了一堆 inode 问题(从系统救援磁盘启动)后,该服务器启动正常。大多数服务运行良好,但是当我尝试启动 sshd 服务时,它立即发生核心转储。

运行 gdb /usr/sbin/sshd core.xxx,转储核心之前的最后一行是:

从 /lib/libnss_files.so.2 读取符号...(无可用的调试)
为 /lib/libnss_files.so.2 加载符号
核心由“/usr/sbin/sshd”生成。
程序因信号 11 而终止,分段错误
#0 PEM_read_bio () 中的 0x00a0dffc 来自 /lib/libcrpto.so.6

我尝试通过(yum reinstall openssh)重新安装 sshd,但没有成功。

***** 更新 ***** 我能够让它工作。如果它能帮助其他人,以下是关键线索:

rpm -Va openssl 打印出:

prelink:/lib/libcrypto.so.0.9.8e:预链接文件已被修改
是吗?...... /lib/libcrypto.so.0.9.8e

显然 libcrypto 出了点问题(gdb 核心转储也指向 libcrypto)。查看 /lib/libcrypto* 后,我搞清楚了它运行的是什么版本。我不知道如何让 yum 强制重新安装依赖项,所以最后,我不得不从另一台正常工作的服务器复制 libcrypto.so.0.9.8e(使用 wget,因为 scp 不起作用)。替换该文件后,一切正常。

答案1

这是 CentOS 系统。您没有重新安装整个套件。OpenSSH 的相关软件包是:和openssh。二进制文件是软件包的一部分。openssh-serveropenssh-clientssshdopenssh-servers

尝试一下yum reinstall openssh openssh-server openssh-clients,看看是否有效。

一般来说,要检查系统上软件包的一致性,可以使用 rpm verify。

rpm -vV packagename针对单个包裹。

或者

rpm -vVa检查所有已安装包的一致性。

答案2

我认为 sshd 使用的库之一或 pamlib 可能已损坏。最好检查所有软件包的签名,然后验证数据/配置的完整性。如果您可以从头开始构建系统并使用全新备份。

相关内容