开发者社区> 问答> 正文

启动SSH服务时提示“error while loading shared libraries”报错

启动SSH服务时提示“error while loading shared libraries”报错怎么处理?

展开
收起
小天使爱美 2020-03-25 23:03:04 2461 0
1 条回答
写回答
取消 提交回答
  • 问题描述 本文主要介绍在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服务的运行依赖相关系统库文件。该问题通常是由于相关库文件异常所致,即文件丢失或权限配置异常等。

    解决方案 阿里云提醒您:

    如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文仅以libcrypto.so.10库文件异常为例进行说明,其他库文件处理方法类似。

    查看相关库文件的信息 登录正常服务器,执行如下命令,查看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 执行如下命令,查看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 记录正常库文件的路径、权限、属组等信息,然后参阅如下方法尝试处理。 文件查找和替换 外部文件上传 通过回滚磁盘恢复

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

    登录ECS实例,关于如何登录ECS实例,请参考使用管理终端连接Linux实例。 执行如下命令,查找libcrypto.so.1.0.1e库文件。 find / -name libcrypto.so.1.0.1e 执行如下命令,将找到的文件拷贝到正常目录。 cp [$File] /usr/lib64/libcrypto.so.1.0.1e 注:[$File]为上一步找到的libcrypto.so.1.0.1e库文件绝对路径。 依次执行如下命令,修改文件权限、所有者和所属组。 chmod 755 /usr/lib64/libcrypto.so.1.0.1e chown root:root /usr/lib64/libcrypto.so.1.0.1e 执行如下命令,创建软链接。 ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10 执行如下命令,启动SSH服务。 service sshd start

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

    通过FTP软件将其它正常服务器上的libcrypto.so.1.0.1e库文件上传到目标服务器的/tmp目录。 提示:上传到目标服务器目录以实际环境为准,本文以/tmp目录为例。 执行如下命令,将文件拷贝到正常目录。 cp /tmp/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.1.0.1e 依次执行如下命令,修改文件权限、所有者和所属组。 chmod 755 /usr/lib64/libcrypto.so.1.0.1e chown root:root /usr/lib64/libcrypto.so.1.0.1e 执行如下命令,创建软链接。 ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10 执行如下命令,启动SSH服务。 service sshd start

    通过回滚磁盘恢复 如果上述方法均未成功,则只能通过回滚系统盘历史快照的方式来进行修复。回滚磁盘的操作说明可以参考回滚磁盘。

    提示:

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

    更多信息 如果还有问题,可以参考云服务器 ECS Linux SSH 无法远程登录问题排查指引做进一步排查分析。

    适用于 云服务器 ECS

    2020-03-25 23:16:35
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Borgaonkar-New-Adventures-In-Spying-3G-And-4G-Users-Locate-Track-And-Monitor 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载