我们有一个通用的LDAP帐户/用户。我们计划使用这个用户为我们的团队配置Jenkins。
- 我使用登录名登录到机器/VM并安装了Jenkins
- 然后,我只从我的帐户生成ssh密钥,但我在生成ssh密钥时提供的电子邮件id是普通用户
- 然后我将公共ssh密钥添加到GitHub(在GitHub中,我使用普通用户登录)
- 为Jenkins SSH凭据插件添加了私钥
- 创建了一个轮询SCM的作业,并且运行良好
- 我需要执行一些git命令(例如pull、checkout、tag等)。因此,我正在编写ant脚本来实现这一点
- 当我通过Jenkins执行GIT ant target[1]时,我得到以下错误:
获取:[echo]-----------------------------------------------------------
[echo]正在从获取最新git@github.XYZ.com:XYZ/ABC主
[echo]-----------------------------------------------------------
[执行]git@github.XYZ.com:权限被拒绝(公钥)。
[exec]致命:无法从远程存储库中读取。
[执行]
[exec]请确保您拥有正确的访问权限
[exec]并且存储库存在。
我是否必须使用公共帐户/用户登录到VM并生成ssh密钥,然后使用这些密钥?如果是,那么为什么第5点工作良好?如果没有,我在这里做什么不对?
[1] -在Jenkins git插件中指定git命令
Jenkins将使用与作业关联的私钥来读取远程回购。
但是:在作业本身中执行的脚本将使用在运行Jenkins本身的用户中找到的默认SSH密钥:~user/.SSH/id_rssa
确保默认私钥是该作业所需的私钥(或者可以通过~/.ssh/config
设置私钥):关键是,它不再与Jenkins SSH凭据插件相关。