【问题标题】:How do i set a private ssh key for hudson / jenkins to access bitbucket?如何为 hudson / jenkins 设置私有 ssh 密钥以访问 bitbucket?
【发布时间】:2011-06-12 17:31:37
【问题描述】:

我正在尝试设置一个 Debian 服务器,使用 Apache2 作为运行 Jenkins 的 Tomcat 7 的前端——这正在工作——但我希望 Jenkins 监控托管在 bitbucket 上的私有 Mercurial 存储库,我想使用 SSH . (我尝试过使用普通的 https,但仍然没有乐趣 - 这里有一个问题答案,建议使用 ssh)

我已经使用 Tomcat 的热部署功能部署了 Jenkins,方法是将 Jenkins .WAR 文件放入 /webapps。我可以在服务器上生成一个公钥/私钥对,并将我的公钥添加到 bitbucket 帐户中 - 但是如何让 Jenkins 在访问 bitbucket 上的私有存储库时使用我的私钥进行身份验证?

我看过一篇博客文章,它使用 apt-get 在 Debian 上安装 Hudson,它创建了一个 Hudson 用户(所以我可以为这个用户添加一个私钥)但是通过 tomcat autodeploy 安装它不会添加 Jenkins用户。如果没有为 Jenkins 设置 unix 用户,我可以配置一个 Jenkins 在身份验证时使用的用户吗?

【问题讨论】:

    标签: mercurial ssh hudson jenkins bitbucket


    【解决方案1】:

    如果您可以在 Jenkins 中控制 mercurial 命令行,您可以传递 --ssh 命令来告诉 mercurial 要调用哪个 ssh 命令。这样的事情可能会起作用:

    hg --ssh '/usr/bin/ssh -i /path/to/private/key' ...
    

    或者,您可以找出 Jenkins 正在运行的用户(它必须是 some 用户)并将文件放入该用户的 ~/.ssh,即使那是 /root/.ssh/

    【讨论】:

    • 它以 tomcat 用户身份运行,因此我为此生成了一个 ssh 密钥对,现在它可以连接。谢谢。
    • 我尝试为 Windows 执行此操作,但 Hudson 的工作停滞不前。我相信正在等待密码提示,因为手动操作我必须输入私钥(TortoiseHG plinlk)的密码。有什么想法吗?
    • 啊,是的,你需要一个无密码的私钥。或者,您可以使用 pagent 并保持其运行,但自动用户的无密码密钥是合理的,只要您不能使用它来获得完整的 shell。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 2017-09-15
    • 1970-01-01
    • 2016-11-11
    • 2018-08-02
    相关资源
    最近更新 更多