Spring 云配置服务器 - Git - 未授权

Spring Cloud Config Server - Git - Not authorized

我有一个使用 Spring Cloud Config 的 Spring-Boot 应用程序,我正在尝试从 Bitbucket 获取该应用程序的配置文件。前段时间我能够获取配置文件,但现在当我尝试通过 config-server url.

访问时出现错误

application.yml:

server:
    port: 8888
spring:
    application:
        name: config-server
    cloud:
        config:
            server:
                git:
                    password: ##########
                    username: ##########
                    uri: https://USERNAME@bitbucket.org/repositorios-closeup/cup-configuration-files
                    searchPaths: '{application}'

当我尝试访问 url 应用程序时显示错误 - 未授权:

org.eclipse.jgit.api.errors.TransportException: https://USERNAME@bitbucket.org/repositorios-closeup/cup-configuration-files: not authorized

    at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]
    at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar:5.1.3.201810200350-r]

有人知道发生了什么事吗?我已经在 bitbucket 上检查了所有凭据和 url。

我需要更改身份验证以使用 ssh 而不是 https。


我使用这个命令生成了 ssh:

sh-keygen -m PEM -t rsa -b 4096 -C 'bitbucket_username'

使用本教程将 public 密钥导入到 bitbucket: https://support.atlassian.com/bitbucket-cloud/docs/set-up-an-ssh-key/

并更改了我的 application.yml 以使用 ssh-private-key:

    cloud:
        config:
            server:
                git:
                    uri: git@bitbucket.org:repositorios/configuration-files.git
                    searchPaths: '{application}'
                    ignore-local-ssh-settings: true
                    private-key: |
                        -----BEGIN RSA PRIVATE KEY-----
                        ...
                        -----END RSA PRIVATE KEY-----
                    default-label: master

我添加了以下命令行。它对我有用。

spring.cloud.config.server.git.ignore-local-ssh-settings=true

此设置忽略本地 ssh 配置。

我必须在 Github 用户设置上生成个人访问令牌。并使用它,而不是真正的密码。

我知道您提到了 Bitbucket,但我对 Github 也有同样的问题。这就是我解决“未授权”消息的方法。