我有一个最近需要一个fsck修复它的主要硬盘驱动器的centos服务器。 修复了一堆索引节点问题(从系统救援磁盘引导)后,盒子启动干净。 大多数服务运行良好,但是当我尝试启动它时,sshd服务立即核心转储。
运行gdb / usr / sbin / sshd core.xxx,在转储核心之前的最后一行是:
读取/lib/libnss_files.so.2中的符号...(无debugging可用) 加载/lib/libnss_files.so.2的符号 核心由`/ usr / sbin / sshd'生成。 程序终止信号11,分段故障 #0 0x00a0dffc在PEM_read_bio()从/lib/libcrpto.so.6
我已经尝试重新安装sshd(yum重新安装openssh),但没有运气。
*****更新*****我能够得到它的工作。 如果能帮助其他人,这里是关键的线索:
rpm -Va openssl打印出来:
预链接:/lib/libcrypto.so.0.9.8e:预链接文件被修改 S ......?/lib/libcrypto.so.0.9.8e
显然有些东西是与libcrypto搞砸的(gdb核心转储也指向libcrypto)。 看着/ lib / libcrypto *我想出了它运行的是什么版本。 没有办法,我知道有百胜力重新安装依赖项,所以最后,我不得不复制libcrypto.so.0.9.8e从另一个工作的服务器(使用wget因为scp不工作)。 replace文件后,一切都很好。
这是一个CentOS系统。 你没有重新安装整个套件。 OpenSSH的相关软件包有: openssh , openssh-server和openssh-clients 。 sshd二进制文件是openssh-servers软件包的一部分。
尝试yum reinstall openssh openssh-server openssh-clients ,看看是否yum reinstall openssh openssh-server openssh-clients 。
一般来说,要检查系统上软件包的一致性,可以使用rpm verify。
每个软件包的rpm -vV packagename软件包名称。
要么
rpm -vVa来检查所有已安装软件包的一致性。
我认为sshd使用的一个库或者可能是pamlib已损坏。 最好是检查所有软件包的签名,然后validation您的数据/configuration完整性。 如果您可以从头构build系统并使用新的备份。