ali*_*ali 3 git authentication ssh bitbucket jenkins
我在 bitbucket 上有一个 GIT 存储库,我希望我的 Jenkins 服务器能够自动访问它。这只能使用公钥/私钥身份验证。所以我创建了一个密钥对并将公钥上传到了bitbucket。公钥和私钥在我的服务器上运行 jenkins 的 tomcat 用户的 .ssh 文件夹中。当我以该用户身份登录服务器时,我可以克隆我的项目。
但是,我无法让詹金斯从 bitbucket 实际检查代码。它总是说:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
好吧,我认为发生这种情况是因为在通过 ssh 访问存储库时,我需要为我的私钥提供密码,而 jenkins 无法自动执行此操作。我读到可以通过在 .ssh 文件夹中提供一个包含以下内容的配置文件来避免被要求输入密码:
Host bitbucket.org
IdentityFile ~/.ssh/id_dsa
Run Code Online (Sandbox Code Playgroud)
我这样做了,但是一旦我提供了该文件,我就无法再从 bitbucket 克隆存储库。甚至不是直接从服务器获得与上图相同的错误消息。
有没有人设法使这个设置工作?我还在 stackoverflow 上阅读了以下对我没有用的线程:如何为 hudson / jenkins 设置私有 ssh 密钥以访问 bitbucket?我通过创建一个只运行“whoami”的空测试项目来检查 tomcat 是否真的在用户 tomcat6 下运行。所以我几乎没有解决问题的想法。
在您的配置中指定 IdentityFile 不会改变您是否必须为 ssh 密钥提供密码。如果确实如此,那将是一个巨大的安全漏洞。您不需要为 ssh 密钥提供密码的唯一方法是您的 ssh 密钥没有密码。
因此,您应该专门为您的 jenkins 实例创建一个 ssh 密钥,并且如果 Bitbucket 允许,则仅授予对该密钥的存储库的只读访问权限。
| 归档时间: |
|
| 查看次数: |
3766 次 |
| 最近记录: |