从github上clone代码时报错 F:\Projects>git clone https://github.com/xxx into 'xxx'... fatal: unable to access 'https://github.com/xxx/': SSL peer certificate or SSH remote key was not OK
F:\Projects>git clone https://github.com/xxx into ‘xxx’…
fatal: unable to access ‘https://github.com/xxx/’: SSL peer certificate or SSH remote key was not OK)
从错误信息
fatal: unable to access 'https://github.com/chatchat-space/Langchain-Chatchat/': SSL peer certificate or SSH remote key was not OK
可以看出,Git 在尝试克隆仓库时遇到了 SSL 证书问题。以下是可能的原因和解决方法:
可能的原因
SSL 证书问题:
- 系统可能无法验证 GitHub 的 SSL 证书。
- 可能是系统时间不正确,导致证书验证失败。
- 也可能是防火墙或代理阻止了 SSL 连接。
Git 配置问题:
- Git 的 SSL 验证配置可能被禁用或配置错误。
网络问题:
- 网络环境可能限制了访问 GitHub。
解决方法
1. 检查系统时间
SSL 证书验证依赖于系统时间。如果系统时间不正确,可能会导致证书验证失败。
- 打开 Windows 设置,检查系统时间是否正确。
- 如果不正确,请同步时间:
- 右键点击任务栏的时间,选择“调整日期/时间”。
- 打开“自动设置时间”和“自动设置时区”。
2. 禁用 SSL 验证(临时解决方案)
如果确定网络环境安全,可以临时禁用 SSL 验证:
- 运行以下命令:
git config --global http.sslVerify false
- 然后重新尝试克隆仓库:
git clone https://github.com/chatchat-space/Langchain-Chatchat
注意:禁用 SSL 验证会降低安全性,建议仅在信任的网络环境中使用。
3. 更新 Git
确保你使用的是最新版本的 Git。旧版本可能存在 SSL 相关的问题。
- 下载并安装最新版本的 Git:Git 官网
4. 检查网络代理
如果在公司或学校网络,可能需要配置代理:
- 查看是否使用了代理:
env | grep -i proxy
- 如果使用了代理,配置 Git 使用代理:
git config --global http.proxy http://proxy.example.com:port git config --global https.proxy https://proxy.example.com:port
- 如果没有代理,尝试禁用代理:
git config --global --unset http.proxy git config --global --unset https.proxy
5. 使用 SSH 代替 HTTPS
如果你有 SSH 密钥,可以尝试使用 SSH 克隆仓库:
- 生成 SSH 密钥(如果还没有):
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
- 将公钥添加到 GitHub:
- 复制公钥:
cat ~/.ssh/id_rsa.pub
- 登录 GitHub,进入 Settings > SSH and GPG keys,添加公钥。
- 复制公钥:
- 使用 SSH 克隆仓库:
git clone git@github.com:chatchat-space/Langchain-Chatchat.git
6. 检查防火墙或杀毒软件
某些防火墙或杀毒软件可能会阻止 Git 的 SSL 连接。
- 暂时禁用防火墙或杀毒软件,然后重试。
- 如果问题解决,将 Git 添加到防火墙或杀毒软件的白名单。
7. 手动更新 CA 证书
如果你的系统缺少根证书,可能会导致 SSL 验证失败。
- 下载最新的 CA 证书包,例如 cURL 的 CA 证书。
- 配置 Git 使用这些证书:
git config --global http.sslCAinfo /path/to/cacert.pem
总结
- 首先检查系统时间和网络环境。
- 尝试禁用 SSL 验证(
git config --global http.sslVerify false
)。 - 如果问题仍然存在,使用 SSH 克隆仓库。
- 如果问题持续,考虑更新 Git 或检查防火墙设置。