尝试使用私有ssh密钥连接Jenkins和Github时出现问题。

4

我正在使用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”(仓库的所有者)

这是有效的,因为我可以从服务器上执行以下命令:

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

询问我的密码后,它返回所有存储库分支。因此,我的公钥和私钥都正常工作。

下一步是在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命令复制私钥,拖动选取直到最后一个短划线,然后按下Ctrl+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.

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

非常感谢您的帮助,将不胜感激。

Jorge

1个回答

0

检查私钥。它应该长这样:

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

不要有空格和换行。

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


好的,发现了,我在创建帖子时打错了一个字。问题肯定是其他原因引起的。感谢您的关注。 - jor ge

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接