如何为 hudson / jenkins 设置私有 ssh 密钥来访问 bitbucket?
我正在尝试设置一个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您可以从 Jenkins 内控制 Mercurial 命令行,则可以传递
--ssh
命令来告诉 Mercurial 要调用哪个 ssh 命令。像这样的东西可能会起作用:或者你可以找出 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: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/