fatal: unable to access 'https://github.com/strasdat/Sophus.git/': gnutls_handshake() failed: Error in the pull function.
时间: 2023-12-16 18:04:14 浏览: 730
这个错误通常是由于网络问题导致的。您可以尝试以下几种解决方法:
1. 检查您的网络连接是否正常,尝试重新连接网络。
2. 检查您的防火墙设置,确保允许 Git 访问互联网。
3. 使用 SSH 协议来进行 Git 操作,这样可以避免使用 HTTPS 协议时出现的网络问题。您可以参考以下步骤使用 SSH 协议:
a. 生成 SSH 密钥对:
```
ssh-keygen -t rsa -b 4096 -C "[email protected]"
```
b. 将公钥添加到您的 GitHub 账户中。在 GitHub 网站上,进入 "Settings" -> "SSH and GPG keys" -> "New SSH key",将您的公钥复制到文本框中并保存。
c. 在使用 Git 时,将远程仓库的地址改为 SSH 协议的地址。例如,将 `https://github.com/strasdat/Sophus.git` 改为 `[email protected]:strasdat/Sophus.git`。
如果以上方法无法解决问题,您可以尝试使用 VPN 或者联系网络管理员寻求帮助。
相关问题
ubuntu中Fatal: unable to access 'https://github.com/langgenius/dify.git/': gnutls_handshake() failed: Error in the pull function.
### 解决 Ubuntu 中 `git clone` GitHub 仓库时出现 `gnutls_handshake()` 失败的问题
当尝试通过 HTTPS 协议克隆 GitHub 上的 Git 仓库时,在某些情况下可能会遇到类似于 `gnutls_handshake() failed: Error in the pull function.` 的错误提示。此问题通常与系统的 GnuTLS 库版本有关或者网络连接不稳定引起。
#### 方法一:更新或重新安装 Git 和相关依赖库
为了确保使用的工具是最新的,可以考虑升级现有的软件包:
```bash
sudo apt update && sudo apt upgrade -y
```
如果上述操作未能解决问题,则可能需要完全移除并重装 Git 及其关联组件来修复潜在损坏文件:
```bash
sudo apt remove --purge git
sudo apt install git libcurl4-gnutls-dev libssl-dev
```
#### 方法二:切换到 SSH 方式访问远程仓库
对于支持 SSH 访问权限的情况,建议改为使用 SSH URL 进行拉取操作,这有助于避开因 SSL/TLS 握手过程引发的问题。具体做法如下所示:
1. 配置本地环境以便能够利用 SSH 密钥认证登录;
2. 将原本基于 HTTP(s) 的链接替换为对应的 SSH 形式的地址;
例如原命令:
```bash
git clone https://github.com/google/googletest.git
```
应更改为:
```bash
git clone [email protected]:google/googletest.git
```
注意在此之前需先完成个人账户下公私钥对创建以及服务器端授权设置[^1]。
#### 方法三:调整 Git 使用不同的 TLS 后端实现
有时更改 Git 所采用的安全传输层协议栈也能有效规避此类握手异常现象的发生。可以通过修改配置参数让 Git 调用 OpenSSL 来代替默认选项(GnuTLS),即运行下面这条指令:
```bash
git config --global http.sslBackend openssl
```
之后再次发起相同请求看看是否恢复正常工作状态[^3]。
#### 方法四:临时禁用证书验证机制
作为最后手段之一,可以在短期内关闭对远端站点身份证明材料的有效性检验功能,但这会降低安全性因此不推荐长期如此做除非确实有必要这么做而且清楚其中风险所在:
```bash
GIT_SSL_NO_VERIFY=true git clone https://github.com/google/googletest.git
```
以上几种方式均有可能帮助克服由 `gnutls_handshake()` 函数调用失败所造成的障碍,可根据实际情况灵活选用最适合自己场景的办法加以处理[^4]。
fatal: unable to access 'https://github.com/strasdat/Sophus.git/': Failed to connect to github.com port 443: 拒绝连接
这个错误通常是由于网络问题或者代理设置导致的。您可以尝试以下几种解决方法:
1. 检查您的网络连接是否正常,尝试重新连接网络。
2. 检查您的防火墙和代理设置,确保允许 Git 访问互联网。如果您使用的是代理,可以执行以下命令配置 Git 使用代理:
```
git config --global http.proxy http://proxyuser:[email protected]:port
git config --global https.proxy https://proxyuser:[email protected]:port
```
其中,`proxyuser` 和 `proxypwd` 是您代理服务器的用户名和密码,`proxy.server.com` 和 `port` 是代理服务器的地址和端口。
3. 使用 SSH 协议来进行 Git 操作,这样可以避免使用 HTTPS 协议时出现的网络问题。您可以参考上一个问题的回答使用 SSH 协议。
如果以上方法无法解决问题,您可以尝试使用 VPN 或者联系网络管理员寻求帮助。
阅读全文
相关推荐















