出错文本

fatal: unable to access 'https://gitea.zhangyiming748.eu.org/zen/WorkLoadLedger.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to gitea.zhangyiming748.eu.org:443

解决方案

你的 Git 推送错误是典型的 SSL 连接失败问题:

fatal: unable to access 'https://gitea.zhangyiming748.eu.org/zen/WorkLoadLedger.git/': LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to gitea.zhangyiming748.eu.org:443

这个错误常见于 macOS 系统(因为 macOS 的 Git 默认使用 LibreSSL),通常由以下原因引起:

  1. 网络代理/VPN/防火墙干扰了 SSL 握手(最常见,尤其是公司网络或某些安全软件)。
  2. 代理设置错误(如 http.proxy 配置不当,或环境变量 HTTP_PROXY/HTTPS_PROXY 设置了但不适用于该域名)。
  3. LibreSSL 与服务器的兼容性问题(某些自建 Gitea 服务器的 TLS 配置可能与 LibreSSL 不完全兼容)。

你的 Gitea 服务器(https://gitea.zhangyiming748.eu.org)是正常的,能正常访问,所以问题基本在客户端(你的电脑)。

推荐解决步骤(从简单到彻底)

  1. 检查并关闭代理/VPN/防火墙

    • 临时关闭任何 VPN、代理工具(如 Clash、Shadowsocks、V2Ray、Surge 等)。
    • 如果你在公司/学校网络,尝试换成手机热点测试。
    • 检查系统代理设置:系统设置 → 网络 → 高级 → 代理 → 确保所有代理都关闭。
  2. 取消 Git 的代理设置(很多情况下就是这个导致的)

    git config --global --unset http.proxy
    git config --global --unset https.proxy
    

    然后再试推送。

  3. 切换 Git 的 SSL 后端到 OpenSSL(macOS 上有效解决 LibreSSL 兼容问题)
    如果你用 Homebrew 安装了 Git(推荐),执行:

    git config --global http.sslBackend openssl
    

    如果提示没有 openssl,先安装:

    brew install openssl
    

    (注意:Homebrew 安装的 Git 默认支持这个切换。)

  4. 临时禁用 SSL 验证(仅测试用,不推荐长期)

    git config --global http.sslVerify false
    

    测试成功后再改回 true

  5. 改用 SSH 协议推送(最彻底推荐,避免所有 HTTPS 问题)

    • 在你的 Gitea 服务器上添加 SSH 公钥(用户设置 → SSH/ GPG 密钥)。
    • 修改远程 URL:
      git remote set-url origin git@gitea.zhangyiming748.eu.org:zen/WorkLoadLedger.git
      
    • 然后正常 push(首次可能需要确认主机指纹)。
  6. 其他检查

    • 用 curl 测试连接:
      curl -v https://gitea.zhangyiming748.eu.org
      
      如果也报 SSL_ERROR_SYSCALL,确认是网络/代理问题。
    • 更新 Git 到最新版(brew upgrade git)。