【发布时间】: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