Java 如何使用SSH从spring配置服务器应用程序连接到Bitbucket?
我创建了一个简单的SpringCloudConfigServer应用程序和相应的“客户端”应用程序。配置服务器从git repo读取配置文件,客户端应用程序从配置服务器中提取它们。它使用存储在本地git repo中的配置文件。我现在想连接到远程Bitbucket服务器 我见过一些使用用户名和密码硬编码的示例,但我不想硬编码这些。我想使用SSH密钥 我在文件里找到了 我在Bitbucket中将公钥添加到我的回购协议中,并且我有以下application.yml文件:Java 如何使用SSH从spring配置服务器应用程序连接到Bitbucket?,java,spring,ssh,bitbucket,spring-cloud-config,Java,Spring,Ssh,Bitbucket,Spring Cloud Config,我创建了一个简单的SpringCloudConfigServer应用程序和相应的“客户端”应用程序。配置服务器从git repo读取配置文件,客户端应用程序从配置服务器中提取它们。它使用存储在本地git repo中的配置文件。我现在想连接到远程Bitbucket服务器 我见过一些使用用户名和密码硬编码的示例,但我不想硬编码这些。我想使用SSH密钥 我在文件里找到了 我在Bitbucket中将公钥添加到我的回购协议中,并且我有以下application.yml文件: server: port:
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上回购的标签的名称。运行此配置服务器应用程序时,出现以下错误:
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的位置。请查看下面的内容。我希望这些帮助您一次隔离并实现设置1的目标:
是一个多行值。因此,它必须在YAML中注册为多行。正如您在中看到的,它使用了“|”,表示块样式指示器。你也可以阅读更多的细节privateKey
<>这不应该是个问题,但以防万一,考虑用SSH协议显式地编写Git URI,如:<代码>ssh://git@mybitbucketserver/ubp/config server.git
- 一种方法是在本地SSH上注册密钥,例如
,然后设置/root/.SSH/id\u rsa
ignorelocalsshs设置:false
- 另一种方法是这样的:
。我们必须在我们可以遵循的选项中外部定义privateKey:${git.repository.key}
git.repository.key
尝试在CLI中克隆相同的repo,以查看它是否有效。