11

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

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

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

4

1 回答 1

9

如果您可以从 Jenkins 中控制 mercurial 命令行,您可以传递--ssh命令来告诉 mercurial 要调用什么 ssh 命令。像这样的东西可能会起作用:

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

或者,您可以找出 Jenkins 以什么用户身份运行(它必须是某个用户)并将文件放入该用户,~/.ssh即使那是/root/.ssh/

于 2011-06-13T01:52:01.267 回答