尝试将 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 连接起来
USERAUTH 因 Github 和 Spring 云配置的私钥文件而失败