You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04容器OpenSSL版本不匹配问题求助

解决OpenSSL版本不匹配导致的git克隆及openssh重装错误

问题根源

你的系统里存在两个版本的libcrypto.so.1.1:

  • 系统默认库是满足OPENSSL_1_1_1要求的OpenSSL 1.1.1系列(对应版本码1010106f)
  • /software/bin/下的旧版本库是OpenSSL 1.1.0系列(对应版本码1010007f),且该路径的库被系统优先加载,导致依赖OPENSSL_1_1_1的程序(如libssh.so.4、openssh密钥生成工具)出现版本兼容错误。

解决方案

1. 确认库加载优先级

先验证问题确实由路径优先级导致:

ldd /usr/lib/git-core/git-remote-http | grep libcrypto

如果输出显示libcrypto.so.1.1 => /software/bin/libcrypto.so.1.1,说明旧库被优先加载。

2. 临时调整库加载顺序(立即生效)

执行命令让系统默认OpenSSL库优先加载:

export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

之后重新尝试:

  • 克隆目标项目
  • 重装openssh:apt-get install --reinstall openssh-server openssh-client

3. 永久生效配置(可选)

如果临时调整有效,将配置写入环境变量:

  • 当前用户:编辑~/.bashrc,添加以下内容后执行source ~/.bashrc生效:
    export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH
    
  • 全局用户:编辑/etc/profile,添加上述命令后,重启系统或执行source /etc/profile生效。

4. 备选方案(若/software/bin下的库非必需)

如果确认该路径下的旧库不是系统必需组件,可直接备份移除:

mv /software/bin/libcrypto.so.1.1 /software/bin/libcrypto.so.1.1.bak
ldconfig

之后重新测试克隆和openssh重装操作。

验证

调整完成后执行以下命令确认:

openssl version  # 应显示OpenSSL 1.1.1n  15 Mar 2022
ldd /usr/lib/git-core/git-remote-http | grep libcrypto  # 应指向/lib/x86_64-linux-gnu/libcrypto.so.1.1

内容的提问来源于stack exchange,提问作者user2090491

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:05:36