spring cloud config server使用ssh方式连接config-repo
Posted rage_angel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring cloud config server使用ssh方式连接config-repo相关的知识,希望对你有一定的参考价值。
spring cloud config server 有三种连接git方式,从而读取config repo中的配置信息。
方式一:用户名密码方式
spring:
cloud:
config:
server:
git:
uri: https://git.oschina.net/config-repo
username: username
password: password
uri使用https地址。
方式二:SSH属性配置
生成SSH公钥,将公钥信息添加到git上。
注意配置文件中的uri使用ssh地址:git@gitee.com:config-repo.git
因为之前生成过公钥,但是无法链接。索性清除key-pair重新生成密钥对。
首先,清除所有的key-pair
ssh-add -D
rm -r ~/.ssh
删除你在github中的public-key
重新生成ssh密钥对
ssh-keygen -t rsa -C "xxx@xxx.com"
chmod 0700 ~/.ssh
chmod 0600 ~/.ssh/id_rsa*
接下来正常操作
在github上添加公钥public-key:
1、首先在你的终端运行 xclip -sel c ~/.ssh/id_rsa.pub将公钥内容复制到剪切板
2、在github上添加公钥时,直接复制即可
3、保存
方式三:用java属性设置SSH连接
spring:
cloud:
config:
server:
git:
uri: git@gitee.com:config-repo.git
ignoreLocalSshSettings: true #为了激活基于属性的SSH配置
# hostKey: someKey
# hostKeyAlgorithm: ssh-rsa
# strictHostKeyChecking: true
privateKey: |
-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEAzlveAu1ttIQpxbLhGxKXu4OCfMFmHecFqtk21qz0wAxDGNhh
HntkXVBoBLhWGrhMSuGlGz3PU0MkvTheRYLzf3r75lK5R0EqULJ7fcYxRVwiSNTb
**************************************
nEgjIlotLeGb+FxegNgZZd/4Dywk36tuvzLWlY6YBJlOxYYg54aYE61X85PzHJM+
P4hXH3ECgYEA7aGXCEBZmtRF4Z9hkEhwI0StXAvCqXibFw1kMD1viP4z43VNrSQb
4aW4u3pkKeMA9ezcp8J40zsCql3vz65Gokj1haS04MVkDVNK9P/g3jlfx9zSxSlB
+JYIL0yduAUBZx+FJ4jZe4S4DkS5X43XKfilfbrXX4kjVaeSOwbe76I=
-----END RSA PRIVATE KEY-----
用方式三的时候遇到的问题:
1、根据官方文档配置好信息之后,会出现异常com.jcraft.jsch.JSchException: reject HostKey: gitee.com 和 com.jcraft.jsch.JSchException: Auth fail .
尝试过各种解决方式,最后无聊看spring cloud版本都已经更新到F了,我们还是用的之前的d的release,已经跳过坑的我,似乎觉察到了什么。稍微尝试了下更新到Dalston.SR5,果然,又在新旧版本的坑里折腾了很久。
2、privateKey添加方式,注意别少了 |
3、升级了下版本之后,不再报500异常了,但是又出现了404.控制台warn如下:
2018-03-29 09:54:03.819 WARN 52093 --- [nio-8021-exec-6] .c.s.e.MultipleJGitEnvironmentRepository : Could not fetch remote for master remote: git@gitee.com:config-repo.git
又读官网配置,检查配置,无果。无意中把hostKey、hostKeyAlgorithm、strictHostKeyChecking这三个属性注释掉之后,刷新页面,配置信息居然出来了。
众里寻他千百度,蓦然回首,那人却在灯火阑珊处。
泪!!!
参考:
http://projects.spring.io/spring-cloud/
http://cloud.spring.io/spring-cloud-static/Dalston.SR2/#spring-cloud-feign
2018.3.30--------
版本升级之后,发现之前加密过的字符串不能解析了。但是昨天线上更新一版,并没有出现问题。
本地配置问题?可是换回低版本之后又可以,排除本地环境配置问题。
最后没办法之际,觉得刚才粗粗略过的一个回答,尝试下?嗯,解析出来了。
总结:spring cloud Dalston.SR5 版本之后,application.yml文件里不能有encrypt.key,启动的时候再配置,就不会出问题了。
参考:https://github.com/spring-cloud/spring-cloud-config/issues/800
以上是关于spring cloud config server使用ssh方式连接config-repo的主要内容,如果未能解决你的问题,请参考以下文章
`spring-cloud-starter-eureka-server`和`spring-cloud-starter-netflix-eureka-server`之间的区别
spring-cloud-starter-eureka-server 和 spring-cloud-starter-netflix-eureka-server的区别
spring-cloud-config:spring-cloud-config Maven配置错误
无法通过 spring.cloud.config.enabled:false 禁用 Spring Cloud Config