尝试将 jenkins 与 github 连接的私有 ssh 密钥问题

Posted

技术标签:

【中文标题】尝试将 jenkins 与 github 连接的私有 ssh 密钥问题【英文标题】:Problem with private ssh key trying to connect jenkins with github 【发布时间】:2020-10-31 17:00:11 【问题描述】:

我正在使用 Ubuntu 版本 18.04.3 LTS 的计算机上的 Jenkins 版本 2.235.1 上创建任务,以使用 Github 上的存储库进行 CD。 我可以使用用户名和密码登录 Github。

问题是 GitHub 不再支持用户名和密码连接,我需要通过 ssh 用户名和私钥进行连接。 我按照所有必要步骤尝试了该过程,但仍然无法连接。

我会仔细阐述连接的步骤。 希望有人能告诉我我做错了什么。

我使用以下命令为名为 Jenkins 的用户创建了一个 id_rsa:

 ssh-keygen -t rsa -b 4096 -C "my_github@email.com"

使用密码“my_passphrase”

我已在 Github 上将公钥放置给用户“user_name”(repo 的所有者)

这行得通,因为我可以从服务器执行以下命令:

git ls-remote -h -- git@github.com:user_name/proyect_name.git 

在询问我的密码后,它会返回所有 repo 分支。 所以我的公钥和私钥工作正常。

下一步是在 Jenkins 上设置凭据以连接到 Github。 我正在像这样设置我的凭据:

种类:带有私钥的 SSH 用户名

   Scope: Global
   Id: empty
   Description: empty
   Username: user_name (owner on GitHub that has a public key assigned)
   Private key: <Enter directly>
         -----BEGIN RSA PRIVATE KEY-----
         ......
         -----END RSA PRIVATE KEY-----
   Passphrase: my_passphrase

我正在使用 CAT 复制私钥,拖动,选择直到最后一个破折号并执行 control+shift+c。

我将 GitHub 存储库的 URL 放置如下:

git@github.com:user_name/proyect_name.git 

当它尝试连接时会抛出以下错误:

 Failed to connect to repository :
    Command "git ls-remote -h -- git@github.com: user_name/proyect_name.git HEAD"
    returned status code 128:
    stdout:
    stderr: git@github.com: Permission denied (public key).
    fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

会不会是我没有正确粘贴私钥??

非常感谢,任何帮助将不胜感激。

豪尔赫

【问题讨论】:

【参考方案1】:

检查私钥。它应该看起来像:

-----BEGIN RSA PRIVATE KEY-----
         ......
-----END RSA PRIVATE KEY-----

没有空格和换行符。

此外,GitHub URL 不应包含空格 git@github.com:user_name/project_name.git

【讨论】:

很好,我在创建帖子时打错了字。问题一定是别的。感谢您调查它。

以上是关于尝试将 jenkins 与 github 连接的私有 ssh 密钥问题的主要内容,如果未能解决你的问题,请参考以下文章

当 github 帐户使用 2 因子身份验证时,是不是可以将 Jenkins Webhooks 与 Github 一起使用

如何将 Jenkins 与 Postgres DB 连接起来

ssh密钥原理

USERAUTH 因 Github 和 Spring 云配置的私钥文件而失败

无法将 Linux 机器作为 Slave 添加到在 Windows 机器上运行的 Jenkins 主机

gerrit 更换 key 问题