英文:
importing a go project from a private gilab repo using ssh: unknown revision
问题
我正在尝试使用SSH从私有且自托管的GitLab仓库导入一个Go项目。当我尝试这样做时,我收到以下错误信息。
输出:
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 文件:
[user]
name = kbacon
email = kbacon@email.com
insteadof = https://gitlab.wtf.notworking/
go mod 文件:
module bbz
go 1.14
require (
gitlab.wtf.notworking/bbq/tools v1.0.0
)
GitLab 仓库:
该GitLab仓库有一个带有发布标签 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 # 私钥路径
AddKeysToAgent yes
使用以下 .gitconfig 文件:
.gitconfig
[user]
name = kbacon
email = kbacon@email.com
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:
英文:
I am trying to import a go project from a private and self hosted gitlab repo using ssh. When i try to do so, i get the following error.
output
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
[user]
name = kbacon
email = kbacon@email.com
insteadof = https://gitlab.wtf.notworking/
go mod file
module bbz
go 1.14
require (
gitlab.wtf.notworking/bbq/tools v1.0.0
)
gitlab repo
the gitlab repo has a project with a release tag v1.0.0
The address i use to clone
ssh://git@gitlab.wtf.notworking:2224/bbq/tools.git
ssh config file
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
[user]
name = kbacon
email = kbacon@email.com
insteadof = https://gitlab.wtf.notworking/
The go get
command then requests my password, but it is supposed to be using ssh. Why is it asking for my password?
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:
答案1
得分: 1
如果你正在使用带有/
而不是:
的SSH URL,你的.gitconfig
应该是这样的:
insteadof = https://gitlab.wtf.notworking/
使用:
的方式是这样的:
insteadof = https://gitlab.wtf.notworking/
在你的ssh配置文件中,确保使用服务账户git
,而不是你的登录账户,同时指定端口和自定义的主机条目:
Host gitlab-wtf
User git
Hostname gitlab.wtf.notworking
IdentityFile ~/.ssh/company_gitlab # 私钥路径
AddKeysToAgent yes
Port 2224
这样,你可以使用:
insteadof = https://gitlab.wtf.notworking/
不再需要git@
或者:2224
了。
英文:
If you are using an SSH URL with /
instead of :
, your .gitconfig
should be:
insteadof = https://gitlab.wtf.notworking/
With ":"
insteadof = https://gitlab.wtf.notworking/
In your ssh config file, make sure to use the service account git
, not your login, with the port, and a custom Host entry:
Host gitlab-wtf
User git
Hostname gitlab.wtf.notworking
IdentityFile ~/.ssh/company_gitlab # path to private key
AddKeysToAgent yes
Port 2224
That way, you can use:
insteadof = https://gitlab.wtf.notworking/
No more git@
or :2224
.
答案2
得分: -2
看起来在.gitconfig文件中缺少端口号。
更新:我看到如果你添加了端口号,你会得到一个不同的错误,但显然需要端口号,因为你正在非标准端口上运行ssh。
英文:
Looks like port number is missing in .gitconfig
UPD: I see if you add it you get a different error, but clearly port number IS needed as you're running ssh on non-standard port.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论