【问题标题】:How do I connect to Bitbucket using SSH from a spring-config-server application?如何从 spring-config-server 应用程序使用 SSH 连接到 Bitbucket?
【发布时间】:2020-01-17 11:24:35
【问题描述】:

我创建了一个简单的 Spring 云配置服务器应用程序和相应的“客户端”应用程序。配置服务器从 git repo 读取配置文件,客户端应用程序从配置服务器中提取它们。它适用于存储在本地 git 存储库中的配置文件。我现在想连接到远程 Bitbucket 服务器。

我见过一些使用硬编码用户名和密码的例子,但我不想硬编码这些。我想使用 SSH 密钥。

我在文档中找到了this example of using ssh keys

我在 Bitbucket 的存储库中添加了一个公钥,并且我有以下 application.yml 文件:

server:
  port: 8888
spring:
  cloud:
    config:
      server:
        git:
          uri: git@mybitbucketserver/ubp/config-server.git
          cloneOnStart: true
          ignoreLocalSshSettings: true
          hostKey: publicKeyLabel
          hostKeyAlgorithm: ssh-rsa
          privateKey: "-----BEGIN RSA PRIVATE KEY-----MIIEoAIBAAKmJyC-----END RSA PRIVATE KEY-----"

其中 publicKeyLabel 是添加到 bitbucket 上的 repo 的标签名称。当我运行此配置服务器应用程序时,我收到以下错误:

org.eclipse.jgit.api.errors.InvalidRemoteException: Invalid remote: origin

嵌套错误:

Caused by: org.eclipse.jgit.errors.NoRemoteRepositoryException: git@mybitbucketserver/ubp/config-server.git: not found.

我已经仔细检查了网址。附加到存储库的公钥与我的代码中的私钥一起使用,从 Openshift 连接,所以我知道它可以工作(我已经删除了这个示例的一些密钥)。

有什么我可以尝试的建议吗?看到很少有人为此使用 SSH 的例子,每个人似乎都对 PW 进行了硬编码:|

如果有更好的方法可以做到这一点,我会全神贯注吗?理想情况下,我的最终目标是不要在代码中包含私钥等,但我希望先让它工作,然后弄清楚我可以在哪里存储 PK。

【问题讨论】:

  • 尝试在 CLI 中克隆相同的 repo 以查看它是否有效。

标签: java spring ssh bitbucket spring-cloud-config


【解决方案1】:

请检查并查看以下内容。我希望这些可以帮助您一次隔离并实现设置 1 的目标:

  1. 在我们继续从外部加载 SSH 密钥(非硬编码)之前,让我们先让您当前的设置工作并在您的配置服务器和 bitbucket 之间建立连接。

    • privateKey 是一个多行值。因此,它必须在 YAML 中注册为多行。正如您在example 中看到的,它使用的是“|”表示块式指示器。您还可以阅读更多here 了解更多详情。
    • 这应该不是问题,但以防万一,请考虑使用 SSH 协议显式编写 git URI,例如:ssh://git@mybitbucketserver/ubp/config-server.git
    • 如果(且仅当)在该更改之后您遇到另一个错误,例如“不是有效的私钥”,您可以稍后参考this
  2. 避免在 YAML 中写入 privateKey。以下是我可以分享的一些建议:

    • 一种方法是在本地 SSH 上注册密钥,例如/root/.ssh/id_rsa 然后设置ignoreLocalSshSettings: false
    • 另一种方式是这样的:privateKey: ${git.repository.key}。我们必须在 here 可以遵循的选项中从外部定义 git.repository.key

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 2019-07-01
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多