我正在使用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