解决方法:启动SSH服务时出现“error while loading shared libraries”错误
网站编辑2021-07-29 14:44:132582
典名科技本文主要介绍在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服务的运行依赖相关系统库文件。该问题通常是由于相关库文件异常所致,即文件丢失或权限配置异常等。
查看相关库文件的信息
1.登录正常服务器,执行如下命令,查看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.记录正常库文件的路径、权限、属组等信息,然后参阅如下方法尝试处理。
文件查找和替换
外部文件上传
通过回滚磁盘恢复
可以先参阅如下步骤,在系统内查找是否有其它有效库文件。
1.登录ECS实例,关于如何登录ECS实例,请参考使用管理终端连接Linux实例。
2.执行如下命令,查找libcrypto.so.1.0.1e库文件。
find / -name libcrypto.so.1.0.1e
3.执行如下命令,将找到的文件拷贝到正常目录。
cp [$File] /usr/lib64/libcrypto.so.1.0.1e
4.依次执行如下命令,修改文件权限、所有者和所属组。
chmod 755 /usr/lib64/libcrypto.so.1.0.1e
chown root:root /usr/lib64/libcrypto.so.1.0.1e
5.执行如下命令,创建软链接。
ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
6.执行如下命令,启动SSH服务。
service sshd start
外部文件上传
如果参考上述步骤,在系统内没有找到有效的libcrypto.so.1.0.1e库文件。而系统内FTP服务运行正常,则可以通过如下步骤,将正常的libcrypto.so.1.0.1e库文件上传到服务器,然后尝试恢复服务。1.通过FTP软件将其它正常服务器上的libcrypto.so.1.0.1e库文件上传到目标服务器的/tmp目录。
2.执行如下命令,将文件拷贝到正常目录。
cp /tmp/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.1.0.1e
3.依次执行如下命令,修改文件权限、所有者和所属组。
chmod 755 /usr/lib64/libcrypto.so.1.0.1e
chown root:root /usr/lib64/libcrypto.so.1.0.1e
4.执行如下命令,创建软链接。
ln -s /usr/lib64/libcrypto.so.1.0.1e /usr/lib64/libcrypto.so.10
5.执行如下命令,启动SSH服务。
service sshd start
通过回滚磁盘恢复
如果上述方法均未成功,则只能通过回滚系统盘历史快照的方式来进行修复。







