git - 代理 key RSA SHA256 : . .. 返回不正确的签名类型

标签 git go circleci circleci-2.0

我正在尝试在 GitHub 上的 Go 项目上使用 CircleCI,并使用 Go 项目的默认模板。

作为引用,这里是默认的 .circleci/config.yml 看起来像:

version: 2
jobs:
  build:
    docker:
      - image: circleci/golang:1.12.7-buster
    working_directory: /go/src/github.com/Permaweb/Host
    steps:
      - checkout
      - run: go get -t -u -v ./...
      - run: go test -v ./...

作业运行时,我收到一个与代码本身完全无关的错误。

agent key RSA SHA256:L1iUIhjfKejEONe0TFU3TaWkNwE2O0xWF/09K7P8WnA returned incorrect signature type
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=origin/<branch> develop

错误发生在 CircleCI 上的 git pull 期间,该分支位于不同于 master 的分支上。

我该如何解决这个问题?

最佳答案

这里有两个独立的问题。

“代理 key 返回不正确的签名类型”警告意味着正在使用的 SSH 代理返回了无效数据。

当您使用 RSA SSH key 时,您可以使用以下几种哈希算法之一进行签名:SHA-1、SHA-256 或 SHA-512。最初,仅支持 SHA-1,因此每次使用 RSA key 都意味着您使用的是 SHA-1。但是,SHA-1 很弱,因此添加了其他更强大的哈希算法。

此消息表示 SSH 连接使用具有不同签名算法(SHA-256 或 SHA-512)的 RSA key 协商连接。但是,SSH 代理在被要求为该连接签名时提供了 SHA-1 签名,这不符合代理协议(protocol)。

此消息本质上不是致命的,但如果远程端不支持 SHA-1 签名,它可能会选择拒绝您的连接。

您看到的另一条消息,来自 Git 的消息,意味着您正在尝试执行 git pull 命令,而没有为该分支设置远程。在这种情况下,那是因为您在现有存储库上使用 go get,因为该命令将尝试更新现有存储库。

如果您只想安装依赖项,运行 go build 通常会自动为您完成,因此无需专门为此目的运行 go get。如果您需要更复杂的东西,那么您应该为此使用 Git 本身,因为 go get 不是为在复杂情况下使用而设计的。

关于git - 代理 key RSA SHA256 : . .. 返回不正确的签名类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57223333/

相关文章:

Git fatal error : Could not set SSL backend to 'openssl' : already set

git - 如何在不下载文件的情况下使用 git clone 设置 repo?

go - 现有 Terraform 提供商的自定义资源?

ruby-on-rails - 在 CircleCI - Rails App 中处理凭证

python - CircleCI - pytest 找不到测试使用的文件

git - Git 服务器与用户之间的复制服务

git - 在 Go 语言中编写可靠的数据存储

go - 以 C 类型作为参数导出函数 [不能在 package.Func 的参数中使用 x (type *C.ctype) 作为类型 *package.C.ctype]

google-app-engine - 如何使用 gcloud 将具有依赖关系的 golang 应用程序部署到应用程序引擎?

postgresql - 如何使用 SSL/TLS 在 CircleCI 中运行 PostgreSQL?