如何解决启动或执行SSH命令报错:error while loading shared libraries: libcrypto.so.10 的问题
axin 2025-04-17 共9人围观 ,发现0个评论👉点击这里申请火山引擎VIP帐号,立即体验火山引擎产品>>>
CentOS 8
CentOS 7
重启ssh服务或者执行ssh命令时候报错
error while loading shared libraries: libcrypto.so.10: cannot open shared object file: No such file or directory`
查看相关库文件的信息
登录正常服务器,执行如下命令,查看libcrypto.so.10库文件的信息。
ll /usr/lib64/libcrypto.so.10
系统显示类似如下,libcrypto.so.10库文件是libcrypto.so.1.0.2k库文件的软连接。
lrwxrwxrwx. 1 root root 19 Jun 21 2021 /usr/lib64/libcrypto.so.10 -> libcrypto.so.1.0.2k
执行如下命令,查看libcrypto.so.1.0.2k库文件的信息。
ll /usr/lib64/libcrypto.so.1.0.2k
系统显示类似如下。
-rwxr-xr-x. 1 root root 2521144 Aug 9 2019 /usr/lib64/libcrypto.so.1.0.2k
恢复文件
本地文件未删除
通过VNC登录实例,查看库文件是否被移动或者软链接被篡改
执行如下命令,查找libcrypto.so.1.0.2k库文件。
find / -name libcrypto.so.1.0.2k
执行如下命令,将找到的文件拷贝到正常目录。
cp [$File] /usr/lib64/libcrypto.so.1.0.2k
[$File]为上一步找到的libcrypto.so.1.0.2k库文件绝对路径。
依次执行如下命令,修改文件权限、所有者和所属组。
chmod 755 /usr/lib64/libcrypto.so.1.0.2k chown root:root /usr/lib64/libcrypto.so.1.0.2k
执行如下命令,创建软链接。
ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.10
执行如下命令,启动SSH服务。
systemctl restart sshd
本地文件被删除
如果通过find命令未能在系统内部找到libcrypto.so.1.0.2k库文件,而系统内部FTP服务运行正常,则可以通过创建一台系统版本一致且能访问库文件缺失的的ECS,通过ftp将缺失的库文件上传到实例中。
通过FTP软件将其它正常服务器上的libcrypto.so.1.0.2k库文件上传到目标服务器的/tmp目录。
上传到目标服务器目录以实际环境为准,本文以/tmp目录为例。
执行如下命令,将文件拷贝到正常目录。
cp /tmp/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.1.0.2k
依次执行如下命令,修改文件权限、所有者和所属组。
chmod 755 /usr/lib64/libcrypto.so.1.0.2k chown root:root /usr/lib64/libcrypto.so.1.0.2k
执行如下命令,创建软链接。
ln -s /usr/lib64/libcrypto.so.1.0.2k /usr/lib64/libcrypto.so.10
执行如下命令,启动SSH服务。
systemctl restart sshd
OpenSSL 加密库 (libcrypto)实现了广泛用于各种 Internet 标准的加密算法。该库提供的服务被 TLS 和 CMS 的 OpenSSL 实现所使用,它们也被用于实现许多其他第三方产品和协议,SSH服务的运行也依赖此库文件。通常此类问题是由于相关库文件异常所致,即文件丢失或权限配置异常等。