CentOS8执行ssh命令出现EVP_KDF_ctrl符号查找错误求助
CentOS8执行ssh时symbol lookup error问题解决
问题现象
执行ssh命令时触发如下错误:
/usr/bin/ssh: symbol lookup error: /usr/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b Connection closed
问题原因
从提供的ldd输出和库文件信息来看,系统自带的libk5crypto.so.3依赖OpenSSL 1.1.1b版本的EVP_KDF_ctrl符号,但当前全局环境的LD_LIBRARY_PATH包含了第三方应用路径(如/opt/mqm91C/lib64),这些路径中可能存在版本不兼容的OpenSSL库,导致动态链接器优先加载了错误版本的库,与系统库产生依赖冲突。
解决步骤
1. 临时应急修复(仅当前终端会话生效)
在执行ssh时临时指定系统库路径,绕过第三方库的干扰:
LD_LIBRARY_PATH=/usr/lib64:/usr/lib /usr/bin/ssh <你的目标主机地址>
2. 永久修复
- 定位系统中设置
LD_LIBRARY_PATH的配置文件,常见的有~/.bashrc、~/.bash_profile、/etc/profile,或者第三方应用的启动脚本 - 修改配置文件,将第三方应用的库路径(如
/opt/mqm91C/lib64)移动到系统路径(/usr/lib64、/usr/lib)之后,或者仅在启动特定应用时单独设置该环境变量,避免全局覆盖系统库的加载优先级 - 修改完成后执行
source <配置文件路径>使变更立即生效
3. 验证修复效果
执行以下命令确认ssh依赖的libcrypto库指向系统版本:
LD_LIBRARY_PATH=/usr/lib64:/usr/lib ldd /usr/bin/ssh | grep libcrypto
输出应显示为:
libcrypto.so.1.1 => /usr/lib64/libcrypto.so.1.1 (0x00007f8041dd4000)
确认后再次尝试ssh连接,验证错误是否消除。
内容的提问来源于stack exchange,提问作者USER
相关产品推荐
相关产品推荐

