atal: 无法访问 https://github.com/PX4/Firmware.git/ :GnuTLS recv error (-110): The TLS connection was non-properly terminated.
时间: 2024-11-19 09:17:40 浏览: 101
这个错误提示 "atal: 无法访问 https://github.com/PX4/Firmware.git/: GnuTLS recv error (-110): The TLS connection was non-properly terminated." 意味着你在尝试通过Git从GitHub克隆PX4/Firmware项目时遇到了问题。GnuTLS是一个开源的TLS库,这里的错误代码(-110)通常表示SSL/TLS握手过程中出现了异常,可能是网络连接中断、服务器端证书问题或者是防火墙设置阻止了连接。
具体原因可能包括:
1. 网络不稳定或断开。
2. GitHub服务临时故障。
3. SSL证书过期或不受信任。
4. 防火墙或安全软件阻止了HTTPS连接。
解决这个问题的步骤可以尝试:
1. 检查网络连接是否稳定。
2. 确认GitHub是否可用,可以在浏览器中访问其官网。
3. 暂停或关闭可能影响HTTPS连接的安全软件。
4. 尝试使用SSH协议代替HTTPS(`git clone [email protected]:PX4/Firmware.git`),虽然这需要先配置SSH密钥对。
如果你遇到这样的问题,建议稍后再试,或者联系技术支持寻求帮助。
相关问题
atal: 无法访问 'https://github.com/PX4/PX4-Autopilot.git/':GnuTLS recv error (-110): The TLS connection was non-properly terminated.
### 解决 GnuTLS 收到错误 (-110) 和 TLS 连接非正常终止问题
当尝试克隆 `PX4/PX4-Autopilot` 或其他 GitHub 仓库时,如果遇到类似于 "gnutls_handshake() failed: The TLS connection was non-properly terminated." 的错误消息[^2],这通常表明客户端与服务器之间的安全通信存在问题。
#### 可能的原因分析
此类问题可能由多种因素引起:
- 网络不稳定或防火墙阻止了请求。
- 客户端使用的 Git 版本过旧,不支持最新的加密协议。
- 中间设备(如代理服务器)干扰了 HTTPS 请求。
- SSL/TLS 库存在兼容性问题。
#### 推荐解决方案
##### 方法一:更新Git版本并配置HTTP/HTTPS超时设置
确保本地机器上的 Git 是最新稳定版。对于较老的操作系统,默认提供的软件包管理器中的 Git 可能不是最新版本。建议通过官方源获取最新版本的 Git 工具。
```bash
# 设置全局 HTTP 超时时间 (单位秒)
git config --global http.timeout 60
# 如果仍然失败, 尝试增加更长时间
git config --global http.postBuffer 524288000
```
##### 方法二:切换至SSH方式而非HTTPS方式进行克隆操作
有时更换为 SSH 协议可以绕开某些网络环境下的限制。为此需先生成一对新的 SSH 密钥对,并将其公钥添加到 GitHub 帐号的安全设置里。
```bash
ssh-keygen -t rsa -b 4096 -C "[email protected]"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
```
之后可使用如下命令来代替原始 URL 地址完成克隆动作:
```bash
git clone [email protected]:PX4/PX4-Autopilot.git
cd PX4-Autopilot
git submodule update --init --recursive
```
##### 方法三:禁用SSL验证(仅限测试)
作为临时措施,在开发环境中可以通过关闭 SSL 验证来进行调试工作,但在生产环境下强烈反对这样做因为会带来安全隐患。
```bash
GIT_SSL_NO_VERIFY=true git clone https://github.com/PX4/PX4-Autopilot.git
```
以上三种方案可以根据实际情况逐一排查直至找到最适合当前场景的办法。值得注意的是,上述提到的 protobuf 文件缺失问题[^3]与此处讨论的主题无关联;而关于 Apollo 开发者平台的信息[^4]也偏离了解决此特定技术难题的核心范围。
atal: 无法访问 'https://github.com/TixiaoShan/LIO-SAM.git/':GnuTLS recv error (-110): The TLS connection was non-properly terminated.
### 解决方案概述
当尝试从GitHub克隆LIO-SAM仓库时遇到`GnuTLS recv error (-110)`错误,表明TLS连接未正常终止。此问题可能由多种因素引起,包括网络不稳定、SSL/TLS验证失败或配置不当。
### 使用SSH替代HTTPS协议
一种有效的解决方案是切换至SSH协议而非HTTPS来执行Git操作。通过设置SSH密钥并更新远程URL可以有效规避该类TLS相关的问题[^4]:
#### 设置SSH访问
1. **生成SSH密钥对**
如果尚未拥有SSH密钥,则需先创建一对新的SSH密钥。
2. **添加公钥到GitHub账户**
将新生成的SSH公钥添加到个人GitHub账号的安全设置里。
3. **更改远程地址为SSH形式**
```bash
git remote set-url origin [email protected]:yourusername/LIO-SAM.git
```
这样做的好处在于绕过了潜在的TLS握手过程中的兼容性难题,从而减少因证书验证而导致的操作中断可能性。
### 调整Git全局配置选项
另一种可行的方法是对Git客户端做出适当调整以适应当前环境下的需求:
- 关闭HTTP SSL验证功能可暂时忽略掉部分安全检查环节,但这可能会带来一定的安全隐患,在生产环境中应谨慎考虑启用此类措施;
```bash
git config --global http.sslVerify false
```
- 增大POST缓冲区大小有助于处理大型项目文件传输过程中可能出现的数据包丢失情况;
```bash
git config --global http.postBuffer 1048576000
```
上述命令均来自已知的有效实践案例[^1]。
阅读全文
相关推荐


















