Jenkins 克隆Bitbucket存储库而不启动ssh代理

Jenkins 克隆Bitbucket存储库而不启动ssh代理,jenkins,ssh,bitbucket,Jenkins,Ssh,Bitbucket,我在VPS上设置了Jenkins,并创建了一个作业,该作业被设置为执行包含以下命令的shell脚本:ssh-Tgit@bitbucket.org 结果我得到了一个“权限被拒绝(公钥)”,因为ssh代理没有启动。这可以通过向shell脚本添加以下两行来解决: eval `ssh-agent -s` ssh-add ~/.ssh/bitbucket_key 但是,当我需要克隆存储库时,我不喜欢将这些tho行添加到每个Jenkins项目中。我希望如果我通过ssh登录到我的VPS,并更改为Jenkin

我在VPS上设置了Jenkins,并创建了一个作业,该作业被设置为执行包含以下命令的shell脚本:
ssh-Tgit@bitbucket.org

结果我得到了一个“权限被拒绝(公钥)”,因为ssh代理没有启动。这可以通过向shell脚本添加以下两行来解决:

eval `ssh-agent -s`
ssh-add ~/.ssh/bitbucket_key
但是,当我需要克隆存储库时,我不喜欢将这些tho行添加到每个Jenkins项目中。我希望如果我通过ssh登录到我的VPS,并更改为Jenkins用户以自己执行这两行代码,这将不再是必要的。不幸的是,情况并非如此。我可以成功运行
ssh-Tgit@bitbucket.org
我自己,但如果没有两行额外的代码,詹金斯的工作仍然失败


有没有一种方法可以避免这种行为,也就是说,我只需要启动ssh代理并向它添加一次密钥,而不是每次克隆存储库?我无法想象每次我想克隆和构建代码时启动(一个新的)ssh代理会是一个好的做法。

~/.ssh/config
中使用
ssh\u config
。它的语法很简单,您可以在
ssh\u config
的手册页面中看到。你的情况应该足够了

Host bitbucket.org
  IdentityFile ~/.ssh/bitbucket_key
那有帮助!我通过向Jenkins添加一个指向密钥的新clobal凭据(临时)解决了这个问题,但这需要我将此凭据添加到每个新作业中。此解决方案允许我始终从存储库中提取,而不考虑作业。