云服务器 ECS Linux SSH 无法远程登录问题,SSH 启动时出现如下错误:error while loading shared libraries
处理办法
该类问题的处理方法类似,本文仅以 libcrypto.so.10 库文件异常为例进行说明。
首先,到一台正常服务器上查看相应库文件的配置情况。比如,libcrypto.so.10 库文件的正常配置如下:
[root@centos ~]# ll /usr/lib64/libcrypto.so.10
-rwxr-xr-x. 1 root root 1965856 Jan 8 03:22 /usr/lib64/libcrypto.so.1.0.1e
记录下正常库文件的路径、权限、属组等信息,然后参阅如下方法尝试处理。
文件查找和替换
外部文件上传
通过回滚磁盘恢复
文件查找和替换
可以先参阅如下步骤,在系统内查找是否有其它有效库文件:
通过 管理终端 进入系统。
通过如下指令查找 libcrypto.so.1.0.1e 库文件:
find / -name libcrypto.so.1.0.1e
将找到的文件拷贝到正常目录:
cp <找到的文件目录> /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
外部文件上传
如果参阅前述步骤,在系统内没有找到有效的 libcrypto.so.1.0.1e 库文件。而系统内 ftp 服务运行正常,则可以通过如下步骤,将外部正常文件上传到服务器内后尝试恢复服务:
通过 FTP 软件将其它正常服务器上的 libcrypto.so.1.0.1e 文件上传到服务器。
假设上传目录为 /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 服务,则说明相应时间点系统已经出现异常。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。