全部产品
Search
文档中心

云服务器 ECS:Linux系统的ECS实例中,启动SSH服务时提示“error while loading shared libraries”错误怎么办?

更新时间:Jun 28, 2024

本文介绍Linux系统的ECS实例,启动SSH服务时提示“error while loading shared libraries”错误时的解决方案。

问题现象

Linux系统的ECS实例启动SSH服务时,提示类似如下的错误信息。

error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory.

执行cat /var/log/secure查看secure日志,出现类似如下的错误信息。

PAM unable to dlopen(/usr/lib64/security/pam_tally.so): /usr/lib64/security/pam_tally.so: cannot open shared object file: No such file or directory.

问题原因

SSH服务的运行依赖相关系统库文件,当相关库文件异常(如相关库文件丢失或权限配置异常)会导致SSH服务启动异常。

解决方案

您可以通过修复libcrypto.so.10库文件或回滚云盘修复该问题。

方案一:修复libcrypto.so.10库文件

您可以通过查看其他正常实例(A实例)中的库文件信息来对照修复该异常实例(B实例)。

  1. 登录正常实例(A实例),执行如下命令,查看libcrypto.so.10库文件的信息。

    ll /usr/lib64/libcrypto.so.10

    系统显示类似如下,libcrypto.so.10库文件是libcrypto.so.1.0.1e库文件的软连接。

    lrwxrwxrwx. 1 root root 19 Jan 8 12:40 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.1e
  2. 执行如下命令,查看libcrypto.so.1.0.1e库文件的信息。

    ll /usr/lib64/libcrypto.so.1.0.1e

    系统显示类似如下。

    -rwxr-xr-x. 1 root root 1965856 Jan 8 03:22 /usr/lib64/libcrypto.so.1.0.1e

    记录正常库文件的路径、权限、属组等信息。

  3. 以VNC方式远程连接该异常ECS实例(B实例)。

    具体操作,请参见连接方式概述

  4. 执行如下命令,查找libcrypto.so.1.0.1e库文件。

    find / -name libcrypto.so.1.0.1e

    根据该ECS实例中是否存在libcrypto.so.1.0.1e库文件,有以下两种解决方案。

    • 存在libcrypto.so.1.0.1e库文件。

      执行如下命令,将找到的文件拷贝到正常目录。

      cp [$File] /usr/lib64/libcrypto.so.1.0.1e
      说明

      [$File]为上一步找到的libcrypto.so.1.0.1e库文件绝对路径。

    • 不存在libcrypto.so.1.0.1e库文件。

      通过FTP软件将其他正常实例上的libcrypto.so.1.0.1e库文件上传到目标实例的/usr/lib64目录。

  5. 依次执行如下命令,修改文件权限、所有者和所属组。

    chmod 755 /usr/lib64/libcrypto.so.1.0.1e
    chown root:root /usr/lib64/libcrypto.so.1.0.1e
  6. 执行如下命令,创建软链接。

    ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
  7. 执行如下命令,启动SSH服务。

    systemctl start sshd.service

方案二:通过回滚云盘恢复

如果通过方案一:修复libcrypto.so.10库文件未修复,如果您为系统盘创建过快照,则您可以通过回滚系统盘历史快照的方式来进行修复。具体操作,请参见使用快照回滚云盘

重要
  • 快照回滚会导致回滚之后的数据丢失,请务必确认后再操作。

  • 建议按时间从近到远的顺序逐一尝试回滚快照,直至SSH服务能正常运行。如果回滚后还是无法正常运行SSH服务,则说明相应时间点的系统已经出现异常。