【发布时间】:2016-02-26 05:06:09
【问题描述】:
我在我的 VPS 上设置了 Jenkins 并创建了一个作业,该作业设置为执行包含以下命令的 shell 脚本:ssh -T git@bitbucket.org
事实证明,我收到“权限被拒绝(公钥)”。响应,因为 ssh-agent 未启动。这可以通过在 shell 脚本中添加这两行来解决:
eval `ssh-agent -s`
ssh-add ~/.ssh/bitbucket_key
但是,当我需要克隆存储库时,我不喜欢将这些行添加到每个 Jenkins 项目中。我希望如果我通过 ssh 登录到我的 VPS 并更改为 Jenkins 用户来自己执行这两行,这将不再是必要的。不幸的是,这种情况并非如此。我自己可以成功运行ssh -T git@bitbucket.org,但是如果没有额外的两条线,Jenkins 的工作仍然会失败。
有没有办法避免这种行为,即我只需要启动 ssh-agent 并将我的密钥添加到其中一次,而不是每次我想克隆存储库时?我无法想象每次我想克隆和构建我的代码时启动(一个新的)ssh-agent 是一个好习惯。
【问题讨论】: