首页  >  文章  >  后端开发  >  为什么 CircleCI 上的我的 Go 项目因'代理密钥返回了错误的签名类型”和 Git 分支问题而失败?

为什么 CircleCI 上的我的 Go 项目因'代理密钥返回了错误的签名类型”和 Git 分支问题而失败?

DDD
DDD原创
2024-11-26 12:01:58136浏览

Why Does My Go Project on CircleCI Fail with

发现签名类型不匹配和 Git 分支问题

在 GitHub 上托管的 Go 项目上使用 CircleCI 时,您可能会遇到令人困惑的错误:“代理密钥 RSA SHA256 :...返回了错误的签名类型。”这个看似不相关的错误发生在与 master 不同的分支上的 Git 拉取过程中。

签名类型不匹配

“代理密钥返回了错误的签名类型”警告表示用于连接的 SSH 代理提供了无效签名。使用 RSA SSH 密钥时,用户可以选择三种哈希算法之一:SHA-1、SHA-256 或 SHA-512。但是,该错误表明发生了不匹配。

最初,RSA SSH 密钥专门使用 SHA-1 进行签名。由于其脆弱性,更强大的哈希算法被引入。当代理根据请求生成 SHA-1 签名而不是协商的 SHA-256 或 SHA-512 时,就会出现错误,这违反了代理协议。

虽然本质上不是致命的,但该错误可能会导致连接失败如果缺乏对 SHA-1 签名的支持,则会被远程端拒绝。

Git 分支问题

随后的错误消息源于尝试 git pull 时未指定相关分支的远程位置。这种情况通常发生在现有存储库上使用 go get 时,因为它会自动尝试更新存储库。

要解决此问题,请避免使用 go get 进行依赖项安装,因为 go build 通常会无缝处理此任务。或者,对于更复杂的场景,选择 Git 本身而不是 go get。

以上是为什么 CircleCI 上的我的 Go 项目因'代理密钥返回了错误的签名类型”和 Git 分支问题而失败?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn