我正在try 使用ssh从私有和self 托管的GitLab repo导入Go项目.当我try 这样做时,我得到以下错误.

输出

kbacon@kbacons-MacBook-Pro bbz % go get -x gitlab.wtf.notworking/bbq/tools@latest
# get https://gitlab.wtf.notworking/bbq/tools?go-get=1
# get https://gitlab.wtf.notworking/bbq/tools?go-get=1: 200 OK (0.413s)
mkdir -p /Users/kbacon/go/pkg/mod/cache/vcs # git3 https://gitlab.wtf.notworking/bbq/tools.git
# lock /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179.lock# /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179 for git3 https://gitlab.wtf.notworking/bbq/tools.git
cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git tag -l
0.013s # cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git tag -l
cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git ls-remote -q origin
0.020s # cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git ls-remote -q origin
# get https://gitlab.wtf.notworking/bbq/tools.git
# get https://gitlab.wtf.notworking/bbq/tools.git: 200 OK (0.186s)
go: gitlab.wtf.notworking/bbq/tools@v1.0.0: reading gitlab.wtf.notworking/bbq/tools/go.mod at revision v1.0.0: unknown revision v1.0.0

.gitconfig.gitconfig

[user]
        name = kbacon
        email = kbacon@email.com
[url "git@gitlab.wtf.notworking/"]
        insteadof = https://gitlab.wtf.notworking/

Go mod文件

module bbz
go 1.14
require (
    gitlab.wtf.notworking/bbq/tools v1.0.0
)

GitLab回购

the GitLab回购 has a project with a release tag v1.0.0

我用来克隆的地址

ssh://git@gitlab.wtf.notworking:2224/bbq/tools.git

SSH配置文件

Host gitlab.wtf.notworking
    User kbacon@email.com
    Hostname gitlab.wtf.notworking
    IdentityFile ~/.ssh/company_gitlab # path to private key
    AddKeysToAgent yes

With this .gitconfig.gitconfig: .gitconfig.gitconfig

[user]
        name = kbacon
        email = kbacon@email.com
[url "git@gitlab.wtf.notworking:2224/"]
        insteadof = https://gitlab.wtf.notworking/

然后,go get命令请求我的密码,但它应该使用ssh.为什么它要我的密码?

kbacon@kbacons-MacBook-Pro bbz % go get -x gitlab.wtf.notworking/bbq/tools@latest
# get https://gitlab.wtf.notworking/bbq/tools?go-get=1
# get https://gitlab.wtf.notworking/bbq/tools?go-get=1: 200 OK (0.424s)
mkdir -p /Users/kbacon/go/pkg/mod/cache/vcs # git3 https://gitlab.wtf.notworking/bbq/tools.git
# lock /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179.lock# /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179 for git3 https://gitlab.wtf.notworking/bbq/tools.git
cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git tag -l
0.030s # cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git tag -l
cd /Users/kbacon/go/pkg/mod/cache/vcs/3bd57e1dd1ed847c1ac192f16c5f67541135ce037a175de23ec5fb5051d10179; git ls-remote -q origin
git@gitlab.wtf.notworking's password:

推荐答案

如果您使用的SSH URL为/而不是:,则.gitconfig应为:

[url "ssh://git@gitlab.wtf.notworking:2224/"]
        insteadof = https://gitlab.wtf.notworking/

带有":"

[url "git@gitlab.wtf.notworking:2224:"]
        insteadof = https://gitlab.wtf.notworking/

在您的ssh配置文件中,确保使用服务帐户git,而不是您的登录名、端口和自定义主机条目:

Host gitlab-wtf
    User git
    Hostname gitlab.wtf.notworking
    IdentityFile ~/.ssh/company_gitlab # path to private key
    AddKeysToAgent yes
    Port 2224

这样,您可以使用:

[url "ssh://gitlab-wtf/"]
        insteadof = https://gitlab.wtf.notworking/

不会再有git@:2224了.

Go相关问答推荐

切换选项卡时,Goland IDE中的光标自动转移

如何将GoFr筛选器用于查询参数?

使用一元或服务器流将切片从GRPC服务器返回到客户端

如何模拟go的Elastic search SDK?

如何找到一个空闲的TPM句柄来保存新的密钥对对象?

是否可以使用标准库构建 Go 二进制文件?

当我的 go build 成功时,如何修复我的 docker build 失败? Dockerfile 包括 go mod 下载

此 Golang 程序中的同步问题

Yocto 无法交叉编译 GoLang Wails 应用程序

如何使用 go-git 将特定分支推送到远程

也许在 golang 中包(字符串和字符串类型不匹配)

不能使用 mockDB(*MockDB 类型的变量)作为 struct 文字中的 *gorm.DB 值

如何将文件上传到 Google Drive,并与使用服务帐户和 Golang 的任何人共享

GqlGen - 在字段解析器中访问查询输入参数

未定义 protoc protoc-gen-go 时间戳

GoReleaser 和 ssh-agent Github 操作:为什么无法读取用户名...终端提示已禁用?

如何优雅地映射到 Go 中返回可变长度数组的方法?

实现接口的指针的泛型类型是什么?

如何从字符串中删除多个换行符`\n`但只保留一个?

如何从 docker-compose 命令运行 2 个不同的命令: