如何为 hudson / jenkins 设置私有 ssh 密钥来访问 bitbucket?

发布于 2024-11-14 20:49:49 字数 521 浏览 1 评论 0原文

我正在尝试设置一个 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 在进行身份验证时使用的用户吗?

I'm trying to set up a Debian server with Apache2 as a front end to Tomcat 7 running Jenkins - which is working - but i want Jenkins to monitor a private Mercurial repository hosted at bitbucket and I'd like to use SSH. (I've tried with plain https but still no joy - there is a question answer here on SO that recommends using ssh)

I've deployed Jenkins using the hot deploy capability of Tomcat by dropping the Jenkins .WAR file into /webapps. I can generate a public/private key pair on the server and have added my public key to the bitbucket account - but how do I make Jenkins use my private key to authenticate when accessing a private repository on bitbucket?

I've seen a blog post that uses apt-get to install Hudson on Debian which creates a Hudson user (so i could add a private key for this user) but installing it via the tomcat autodeploy doesn't add a Jenkins user. If there is no unix user set up for Jenkins, can I configure one that Jenkins would use when authenticating?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

三生殊途 2024-11-21 20:49:50

如果您可以从 Jenkins 内控制 Mercurial 命令行,则可以传递 --ssh 命令来告诉 Mercurial 要调用哪个 ssh 命令。像这样的东西可能会起作用:

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

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

If you can control the mercurial command line from within Jenkins you can pass the --ssh command to tell mercurial what ssh command to invoke. Something like this would probably work:

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

Alternately you can figure out what user Jenkins is running as (it's got to be some user) and put the file in that user's ~/.ssh even if that's /root/.ssh/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文