【问题标题】:Jenkins Failed to connect to Gitlab RepositoryJenkins 无法连接到 Gitlab 存储库
【发布时间】:2021-05-06 15:03:16
【问题描述】:

我在我的 Ubuntu 20.04 服务器上使用用户 Jenkins 生成了一个公共 SSH 密钥,我的密钥存储在下面:

/var/lib/jenkins/.ssh/id_rsa.pub

我已经在我的 Gitlab SSH 参数上设置了该公钥,并且我还在 Jenkins 中为 SSH 私钥创建了一个凭据,我在其中粘贴了我在 linux 20.04 远程服务器中为我的 Jenkins 用户生成的私钥。 当我尝试使用 SSH 克隆项目时,出现错误:

无法连接到存储库:执行 git 命令时出错:/usr/lib/git-core ls-remote -h git@gitlab.com:project/repository.git HEAD*

需要帮助来解决这个问题。 enter image description here

【问题讨论】:

    标签: jenkins ssh gitlab devops


    【解决方案1】:

    首先,检查在使用jenkins 帐户执行 ssh 时是否确实考虑了您的密钥:

    ssh -Tv git@gitlab.com
    

    您将看到 SSH 在哪里寻找您的密钥,以及是否使用了 /var/lib/jenkins/.ssh/id_rsa
    你应该会看到welcome message

    其次,查看Jenkins日志,看看是否有额外的线索。

    您可能需要通过 old PEM format 使用 SSH 密钥:

    ssh-keygen -m PEM -t rsa -P "" -f afile 
    

    【讨论】:

    • 我尝试使用这个命令 ssh -Tv git@gitlab.com 看到了欢迎信息,但是没有记录 Jenkins 登录
    • @BoubacarFofana 在命令行中,你能检查一下git ls-remote git@gitlab.com:project/repository.git 是否有效吗? (用正确的名称替换项目和存储库)
    • 是的,它在这里工作是结果41cf42a0784a refs/heads/dev 8a5e73286edb2feba89f15d2b656b55d9e49bdac refs/heads/main db1665aca17037954d2ff659093c24c0e1e1170a refs/heads/master 77abc7c7c1d9fa2cc4eb92b7c314cd00dcae326a refs/merge-requests/10/head 55d54746fdfeb1c777044809e43892287d80002e refs/merge-requests/10/merge 58624e027802daf0326aded7779f1b14bd3345e7 refs/merge-requests/11/head 83c373fb42d246949f7f467bab34d3accc736bc2 refs/merge-requests/11/merge e198cc411df8c68230e6509c5311114fd94af835 refs/merge-requests/9/head
    • @BoubacarFofana 你能再试一次吗,这次使用旧 PEM 格式的 SSH 密钥,如stackoverflow.com/a/53645530/6309 中所述?检查新密钥是否也可以在命令行中使用,然后在您的 Jenkins 凭据中使用这个新私钥并查看作业定义是否有效。
    • 您好,我又试了一次,但还是不行。我决定使用詹金斯容器,我遇到了同样的问题。当我尝试使用 GitLab 或 Github 的公共存储库时,一切正常。当涉及到私有存储库时,它失败了。
    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 2019-07-09
    • 2019-05-12
    • 1970-01-01
    • 2013-12-14
    • 2015-04-20
    • 2014-08-01
    • 2016-12-10
    相关资源
    最近更新 更多