如何在 docker jenkins 镜像上获取用于 git 身份验证的公共 ssh 密钥?

如何在 docker jenkins 镜像上获取用于 git 身份验证的公共 ssh 密钥?

我在用着Docker我正在运行 Jenkins 镜像。我正在尝试的镜像:https://github.com/orchardup/docker-jenkins

我需要生成一个 ssh 密钥对,以便我可以使用它来验证 bitbucket。这样 jenkins 就可以提取我的源代码并进行构建。通常我只需 su 到 jenkins 用户并运行 ssh-keygen 即可实现此目的。

我已经编辑了运行文件:

su jenkins

这样我就能够访问 shell,我可以在其中运行ssh-keygen以将 ssh 密钥安装到 jenkins 用户主目录中~/.ssh。 之后我退出,Dockerfile 继续。 此主目录/var/lib/jenkins也作为卷安装在主机服务器上。

问题是 ssh 密钥出现在这里,但它们不起作用。有什么更好的方法可以实现这一点吗?

谢谢

答案1

我刚刚意识到你正在使用git这个问题,而我却忽略了它......

从“Git 插件”2.0 版开始,可以在测试本身的“源代码管理”部分添加特定存储库的凭据。应该有一个名为“凭据”的标签,允许您使用用户名/密码或用户名/私钥组合。

如果您为每个想要运行测试的存储库创建一个部署密钥,请将此部署密钥添加为凭据中的私钥,这样就可以了。

答案2

您的方法应该有效。

您可以在主机上生成 ssh 密钥(ssh-keygen)。用户不必是“jenkins”,可以是任何其他用户。

生成密钥后,确保将其作为卷与 Jenkins Docker 共享,以便 /var/lib/jenkins/.ssh/(在容器中)将包含主机的密钥(id_rsa)。

您还必须确保将生成的公钥(id_rsa.pub)作为“SSH 密钥”添加到 Bitbucket 中任何有权使用 Jenkins 执行您想做的事情的用户。

相关内容