【问题标题】:Clone Bitbucket repository without starting ssh-agent在不启动 ssh-agent 的情况下克隆 Bitbucket 存储库
【发布时间】: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 是一个好习惯。

【问题讨论】:

    标签: jenkins ssh bitbucket


    【解决方案1】:

    在您的~/.ssh/config 中使用ssh_config。它具有简单的语法,您可以在 ssh_config 的手册页中阅读。对于你的情况应该足够了

    Host bitbucket.org
      IdentityFile ~/.ssh/bitbucket_key
    

    【讨论】:

    • 这有帮助!我通过向 Jenkins 添加一个指向密钥的新全局凭据来解决它(临时),但这需要我将此凭据添加到每个新工作中。无论工作如何,此解决方案都允许我始终从我的存储库中提取。
    猜你喜欢
    • 2016-05-01
    • 2020-03-20
    • 2020-12-13
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2020-04-20
    相关资源
    最近更新 更多