这是关于Spring Cloud Config Server业余爱好项目(使用EnableConfigServer)。
昨天,应用程序可以启动了。
今天,由于Git通信错误,应用程序无法启动。
GitHub的官方博客中提到,自2022年3月15日起,不再支持SHA-1。这也解释了我这两天得到的结果。
2022年3月15日
永久性更改。
我们将永久停止接受DSA密钥。在上述截止点之后上载的RSA密钥将仅适用于SHA-2签名(但同样,在此日期之前上载的RSA密钥将继续适用于SHA-1)。不推荐使用的MAC、密码和未加密的Git协议将被永久禁用。
即使我没有删除现有的SSH键,它今天仍然无法启动。但是不管怎样,现在存储库设置的“部署键”部分下的唯一键是在2022年3月15日截止日期之后添加的SSH键。
依赖管理:
依赖关系:
<代码>应用程序。yml:
spring:
cloud:
config:
server:
git:
ignore-local-ssh-settings: true
uri: git@github.com:xxx/xxx.git
private-key: |
-----BEGIN RSA PRIVATE KEY-----
(omitted)
-----END RSA PRIVATE KEY-----
所涉及的repo是一个GitHub专用repo,在“部署密钥”设置部分下配置了SSH密钥。
我一直在根据Spring Cloud Config官方留档生成SSH密钥对。
从控制台日志中,我看到:
错误:您在SHA-1中使用RSA密钥,不再允许使用。请使用较新的客户端或不同的密钥类型。有关详细信息,请参阅https://github.blog/2021-09-01-improving-git-protocol-security-github/。
这来自JGit作为一个组织。日食jgit。错误。NoRemoteRepositoryException(无存储异常)。
我尝试将Spring云依赖关系管理版本升级到Maven repository中可用的最新版本,即2021.0.1,因为它使用了较新版本的JGit。
然而,我仍然面临着同样的错误。
如果我只是切换到具有完全相同配置的GitLab,无论Spring Cloud依赖版本和JGit版本如何,它都可以正常工作。
如果我想使用GitHub,我还能做什么?
如果以前从本地主机使用过ssh,则应使用ecdsa命令更改RSA密钥:ssh-keygen-m PEM-t ecdsa-b 256和中的配置文件/ssh文件夹应如下所示
Host github.com
User git
Hostname github.com
IdentityFile ~/.ssh/id_ecdsa
如果在属性文件中重写本地ssh:
spring:
cloud:
config:
server:
git:
host-key: this can be found in know hosts example : AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIb...........
host-key-algorithm: ecdsa-sha2-nistp256
ignore-local-ssh-settings: false
private-key: |
-----BEGIN EC PRIVATE KEY-----
.................
.................
.........................
-----END EC PRIVATE KEY-----
裁判:https://github.com/spring-cloud/spring-cloud-config/issues/2061#issuecomment-1070779477
我也有同样的问题。
看见https://github.com/spring-cloud/spring-cloud-config/issues/2061
目前,我有一个棘手的解决方法:使用https uri、用户名和密码(可能是个人秘密令牌)。
spring:
cloud:
config:
server:
git:
uri: https://github.com/org/repo
username: ...
password: ...
使用scs v2测试以下内容。1.
使用ecdsa:
获取主机密钥
ssh-keyscan -t ecdsa github.com
# github.com:22 SSH-2.0-babeld-4f04c79d
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
生成新密钥
ssh-keygen -t ecdsa -b 256 -m PEM
将生成的公钥添加到github repo的部署密钥中。
使用主机密钥、主机密钥算法和生成的私钥创建或更新配置服务器。
cf create-service p-config-server standard <config-server-name> -c '{"git": { "uri": "git@github.com:<repo>.git", "privateKey": "<generated_key>", "hostKey": "AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=","hostKeyAlgorithm": "ecdsa-sha2-nistp256"} }'
我正在使用Spring Cloud Config服务器,能够检测来自git存储库的更改并将其传递给配置客户机。 有两种方法,我已经实现了: null 所以两者都工作得很好,那么使用Spring Cloud Bus有什么好处吗?或者在生产环境中,不使用Spring Cloud Bus会有什么问题吗?因为将需要额外的工作来设置RabbitMQ集群(HA)作为生产中的Spring云总线。 谢谢,大卫
我正在尝试创建SpringCloudConfigServer,以便使用SSHURI连接到git存储库(bitbucket)。我正在关注Spring云配置 我使用ssh-keygen实用工具生成了密钥对,并粘贴了。发布文件内容在我的bitbucket帐户的ssh部分,但当我运行作为spring启动应用程序的服务器时,我得到无效的privateKey异常。 我也使用了这个堆栈溢出帖子中提供的建议,但是
我正在使用Spring Cloud配置服务器,我需要为每个阶段的产品测试和开发创建一个配置文件,我已经为默认配置文件创建了4个yml文件application.yml,为每个配置文件创建了应用程序-{配置文件},所以我的问题是如何通过环境变量加载特定的配置,并在每个配置文件配置和端口上运行配置服务器,我已经创建了一个bootstrap.yml但我不能解决这个问题。如果有人能指导我完成这些步骤来满足
将配置服务器用户名和密码存储为环境变量(在客户端和服务器中)还是使用密钥库更好?密钥库密码无论如何都存储为环境变量,那么为什么实际使用密钥库呢?还是有更好的方法在SpringCloudConfig服务器中实现身份验证?
我正在设置一个Spring启动云配置服务器,它使用VAULT来存储秘密。 保管库身份验证机制设置为AWS_IAM。我的类路径中也有aws-java-sdk。aws cli也被配置。 当我向配置服务器发出请求时,我能够从VAULT中获取机密,但第一次请求除外 对配置服务器的第一个请求失败,因为它试图安排任务在到期后续订vault令牌(来自vault响应) 应用程序中的配置。性质 错误日志是
我有一个使用SpringCloud配置的Spring Boot应用程序,我正在尝试从Bitbucket获取应用程序的配置文件。前一段时间我可以获取配置文件,但现在我在尝试通过配置服务器url访问时出错。 应用yml: 当我试图访问网址的应用程序显示一个错误-未授权: 有人知道发生了什么吗?我已经检查了bitbucket上的所有凭据和url。