启动SSH服务时出现“error while loading shared libraries”错误

[复制链接]
查看: 372|回复: 0

12

主题

13

帖子

50

积分

注册会员

Rank: 2

积分
50
发表于 2019-9-22 15:22:38 | 显示全部楼层 |阅读模式
启动SSH服务时出现“error while loading shared libraries”错误

本文主要介绍在Linux系统的ECS实例启动SSH服务时,命令行或secure日志文件出现类似如下的错误信息。

  • error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory.
  • 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服务的运行依赖相关系统库文件。该问题通常是由于相关库文件异常所致,即文件丢失或权限配置异常等。


解决方案

本文仅以libcrypto.so.10库文件异常为例进行说明,其他库文件处理方法类似。


查看相关库文件的信息
  • 登录正常服务器,执行如下命令,查看libcrypto.so.10库文件的信息。
    1. ll /usr/lib64/libcrypto.so.10
    复制代码
    系统显示类似如下,libcrypto.so.10库文件是libcrypto.so.1.0.1e库文件的软连接。
    1. lrwxrwxrwx. 1 root root 19 Jan 8 12:40 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.1e
    复制代码

  • 执行如下命令,查看libcrypto.so.1.0.1e库文件的信息。
    1. ll /usr/lib64/libcrypto.so.1.0.1e
    复制代码
    系统显示类似如下。
    1. -rwxr-xr-x. 1 root root 1965856 Jan 8 03:22 /usr/lib64/libcrypto.so.1.0.1e
    复制代码

  • 记录正常库文件的路径、权限、属组等信息,然后参阅如下方法尝试处理。文件查找和替换

    可以先参阅如下步骤,在系统内查找是否有其它有效库文件。


    • 登录ECS实例。
    • 执行如下命令,查找libcrypto.so.1.0.1e库文件。
      1. find / -name libcrypto.so.1.0.1e
      复制代码

    • 执行如下命令,将找到的文件拷贝到正常目录。
      1. cp [$File] /usr/lib64/libcrypto.so.1.0.1e
      复制代码
      注:[$File]为上一步找到的libcrypto.so.1.0.1e库文件绝对路径。
    • 依次执行如下命令,修改文件权限、所有者和所属组。
      1. chmod 755 /usr/lib64/libcrypto.so.1.0.1e
      2. chown root:root /usr/lib64/libcrypto.so.1.0.1e
      复制代码

    • 执行如下命令,创建软链接。
      1. ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
      复制代码

    • 执行如下命令,启动SSH服务。
      1. service sshd start
      复制代码

    • 外部文件上传
    • 如果参考上述步骤,在系统内没有找到有效的libcrypto.so.1.0.1e库文件。而系统内FTP服务运行正常,则可以通过如下步骤,将正常的libcrypto.so.1.0.1e库文件上传到服务器,然后尝试恢复服务。


      • 通过FTP软件将其它正常服务器上的libcrypto.so.1.0.1e库文件上传到目标服务器的/tmp目录。
        提示:上传到目标服务器目录以实际环境为准,本文以/tmp目录为例。
      • 执行如下命令,将文件拷贝到正常目录。
        1. cp /tmp/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.1.0.1e
        复制代码

      • 依次执行如下命令,修改文件权限、所有者和所属组。
        1. chmod 755 /usr/lib64/libcrypto.so.1.0.1e
        2. chown root:root /usr/lib64/libcrypto.so.1.0.1e
        复制代码

      • 执行如下命令,创建软链接。
        1. ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
        复制代码

      • 执行如下命令,启动SSH服务。
        1. service sshd start
        复制代码

通过回滚磁盘恢复

如果上述方法均未成功,则只能通过回滚系统盘历史快照的方式来进行修复。。

提示:

  • 快照回滚会导致回滚之后的数据丢失,请务必确认后再操作。
  • 建议按时间从近到远的顺序逐一尝试回滚快照,直至SSH服务能正常运行。如果回滚后还是无法正常运行SSH服务,则说明相应时间点的系统已经出现异常。




腾讯云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )