【问题标题】:agent key RSA SHA256: ... returned incorrect signature type代理密钥 RSA SHA256: ...返回了不正确的签名类型
【发布时间】:2019-07-26 15:48:51
【问题描述】:

我正在尝试在 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 pullmaster 不同的分支上。

我该如何解决这个问题?

【问题讨论】:

  • 我遇到了这个问题,因为我在 Windows 计算机上使用了 powershell。我的直接解决方法是从那里使用 WSL 和 SSH;但是,我确实发现了涉及更好解决方案的讨论/问题,例如在 Windows 上升级 SSH 客户端。见Win32-OpenSSH issue discussion

标签: git go circleci circleci-2.0


【解决方案1】:

这里有两个问题,分别独立。

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

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

此消息表示 SSH 连接使用具有不同签名算法(SHA-256 或 SHA-512)的 RSA 密钥协商连接。但是,当要求 SSH 代理对该连接进行签名时,它提供了一个不符合代理协议的 SHA-1 签名。

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

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

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

【讨论】:

  • 值得补充的是,停止“代理密钥返回错误签名类型”消息的方法是将代理升级到支持除SHA-1之外的签名算法的版本。见superuser.com/a/1499705/287985
猜你喜欢
  • 2020-05-24
  • 1970-01-01
  • 2021-04-18
  • 1970-01-01
  • 1970-01-01
  • 2019-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多