我试图在Go项目的默认模板上使用GitHub上Go项目的CircleCI。
作为参考,这里的默认是什么.circleci/config.yml 样子 :
.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
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
错误发生在git pull不同于的分支上的on CircleCI上master。
git pull
master
我怎样才能解决这个问题?
这里有两个问题,分别是独立的。
“代理密钥返回的签名类型不正确”警告表示正在使用的SSH代理返回了无效数据。
使用RSA SSH密钥时,可以使用以下几种哈希算法之一进行签名:SHA-1,SHA-256或SHA-512。最初仅支持SHA-1,因此每次使用RSA密钥都意味着您正在使用SHA-1。但是,SHA-1较弱,因此添加了其他更强大的哈希算法。
此消息表示SSH连接使用具有不同签名算法(即SHA-256或SHA-512)的RSA密钥协商了连接。但是,在要求SSH代理对该连接进行签名时,SSH代理提供了SHA-1签名,该签名不符合代理协议。
该消息并不是本质上致命的消息,尽管如果远程端不支持SHA-1签名,则可以选择拒绝您的连接。
您看到的另一条消息,即来自Git的消息,表示您正在尝试执行git pull命令而没有为该分支设置遥控器。在这种情况下,这是因为您在go get现有存储库上使用,因为该命令将尝试更新现有存储库。
go get
如果您只想安装依赖项,运行go build通常会自动为您执行此操作,因此无需go get专门为此目的运行。如果您需要更复杂的东西,则应使用Git本身,因为go get它并非设计用于复杂情况。
go build