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

macOS从Big Sur升级到Monterey后OpenSSL版本不匹配求助

解决macOS Monterey升级后OpenSSL版本不匹配导致SSH/Git拉取失败问题

问题分析

升级到Monterey后,系统当前的OpenSSL版本(3.2.x,对应版本号30200000)与Git/SSH编译时依赖的版本(3.1.x,对应版本号30100010)不一致,触发版本匹配错误,导致无法正常使用SSH或拉取GitHub代码。

有效解决方案

方案1:重新编译Git关联Homebrew的OpenSSL

系统自带的Git可能仍绑定旧版本OpenSSL,通过Homebrew重装Git并指定当前OpenSSL路径,确保依赖匹配:

  1. 打开终端,先设置OpenSSL环境变量:
    export PATH="$(brew --prefix openssl)/bin:$PATH"
    export LDFLAGS="-L$(brew --prefix openssl)/lib"
    export CPPFLAGS="-I$(brew --prefix openssl)/include"
    export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig"
    
  2. 重装Git:
    brew reinstall git
    
  3. 重启终端,测试git clone或SSH连接。

方案2:修复Ruby的OpenSSL绑定

如果Ruby环境的OpenSSL扩展仍依赖旧版本,执行以下操作:

  1. 重新安装Ruby并指定Homebrew的OpenSSL路径:
    brew reinstall ruby --with-openssl=$(brew --prefix openssl)
    
  2. 若上述命令无效,直接重新安装Ruby的OpenSSL gem扩展:
    gem install openssl -- --with-openssl-dir=$(brew --prefix openssl)
    

方案3:调整Shell环境变量优先级

确保Homebrew安装的工具优先于系统自带工具加载,编辑~/.zshrc文件:

  1. 在文件开头添加以下内容(ARM架构Mac替换/usr/local为/opt/homebrew):
    export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
    export PATH="$(brew --prefix openssl)/bin:$PATH"
    export LDFLAGS="-L$(brew --prefix openssl)/lib"
    export CPPFLAGS="-I$(brew --prefix openssl)/include"
    export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig"
    
  2. 使配置生效:
    source ~/.zshrc
    
  3. 重启终端验证。

方案4:降级OpenSSL到匹配版本

若上述方案无效,可尝试降级OpenSSL至Git/SSH编译依赖的3.1.x版本:

  1. 安装OpenSSL 3.1:
    brew install openssl@3.1
    
  2. 切换默认OpenSSL链接:
    brew unlink openssl && brew link openssl@3.1 --force
    
  3. 重新安装Git和Ruby,确保它们绑定降级后的OpenSSL:
    brew reinstall git ruby
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:12:55