Git | Jenkins | 权限被拒绝(publickey)

4
我们有一个常用的LDAP账户/用户。我们计划使用这个用户为我们的团队配置Jenkins。
  1. 我使用我的登录信息登录到机器/虚拟机上并安装了Jenkins。
  2. 然后我仅从我的帐户生成了SSH密钥,但我在生成SSH密钥时提供的电子邮件ID是常用用户的。
  3. 然后我将公共SSH密钥添加到GitHub中(在GitHub中,我使用常用用户登录)。
  4. 将私钥添加到Jenkins SSH凭据插件中。
  5. 创建了一个执行轮询SCM的任务,它工作正常。
  6. 我需要执行一些git命令(例如pull,checkout,tag等...)。因此,我正在编写ant脚本来实现此目的。
  7. 当我通过Jenkins执行GIT ant目标[1]时,我收到以下错误:

fetch: [echo] ---------------------------------------------------------

[echo] Fetching Latest from git@github.XYZ.com:XYZ/ABC master

[echo] ---------------------------------------------------------

[exec] git@github.XYZ.com: Permission denied (publickey).

[exec] fatal: Could not read from remote repository.

[exec]

[exec] 请确保您拥有正确的访问权限并且存储库存在。

我是否必须使用常用账户/用户登录到虚拟机中并生成SSH密钥,然后使用这些密钥?如果是,则第5点为什么能正常工作?如果不是,我在这里做错了什么?
[1] - 在Jenkins Git插件中指定git命令
1个回答

1

Jenkins将使用与作业相关联的私钥来读取远程存储库。

但是:作业内部执行的脚本将使用运行Jenkins本身的用户找到的默认SSH密钥:~user/.ssh/id_rsa

确保默认的私钥是该作业所需的私钥(或者您可以通过~/.ssh/config设置一个私钥):关键是,这不再与Jenkins SSH凭据插件相关。


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