You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SSH导入私有自建GitLab Go项目遇未知版本及密码验证问题

私有GitLab仓库Go模块导入问题排查

一、初始错误场景

执行go get -x gitlab.wtf.notworking/bbq/tools@latest导入私有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
    [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仓库克隆地址:
    ssh://git@gitlab.wtf.notworking:2224/bbq/tools.git
    
  • SSH配置文件(~/.ssh/config):
    Host gitlab.wtf.notworking
        User kbacon@email.com
        Hostname gitlab.wtf.notworking
        IdentityFile ~/.ssh/company_gitlab # path to private key
        AddKeysToAgent yes
    

二、调整配置后的问题

将.gitconfig调整为以下内容后:

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

执行go get命令时,系统要求输入git@gitlab.wtf.notworking的密码,而非使用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:

问题原因

  1. SSH配置的User字段错误:GitLab的SSH服务默认用户是git,而非个人邮箱。将User设为邮箱会导致SSH身份验证使用错误用户名,密钥验证失败后自动 fallback 到密码验证。
  2. SSH配置未指定端口:仓库的SSH端口是2224,但原SSH配置里没有Port字段,Git会使用默认的22端口连接,无法匹配到正确的仓库服务,进而触发密码提示。
  3. 初始错误中unknown revision v1.0.0是因为.gitconfig的insteadof映射未包含端口,导致Git无法正确访问仓库获取标签信息。

解决方案

1. 修正SSH配置文件(~/.ssh/config)

将配置修改为:

Host gitlab.wtf.notworking
    User git
    Hostname gitlab.wtf.notworking
    Port 2224
    IdentityFile ~/.ssh/company_gitlab
    AddKeysToAgent yes
  • User改为git:符合GitLab SSH服务的默认用户要求
  • 添加Port 2224:对应仓库的自定义SSH端口

2. 验证SSH连接

执行以下命令测试是否能无密码登录GitLab:

ssh gitlab.wtf.notworking

如果成功,会显示GitLab的欢迎信息。

3. 调整.gitconfig(可选)

可以保持调整后的.gitconfig,或者改回初始的映射(因为SSH配置已指定端口,Git会自动使用正确端口):

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

4. 重新执行go get命令

go clean -modcache
go get -x gitlab.wtf.notworking/bbq/tools@latest

先清理模块缓存,再重新拉取模块。

内容的提问来源于stack exchange,提问作者prolink007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 10:10:49