【问题标题】:Unable to get public/private key authentication working for Azure Spring Cloud Config Server无法获得适用于 Azure Spring Cloud Config Server 的公钥/私钥身份验证
【发布时间】:2020-07-03 13:56:54
【问题描述】:

我在使用 Github 存储库作为后端的 Azure Spring Cloud 中设置我的配置服务器时遇到了困难。我使用基本身份验证使其工作,我在 Github 中创建了一个令牌,这对我的实验来说很好,但这不适合生产。

我已经在 Github 中设置了我的公钥,并使用以下命令测试了我的设置是否正确,本质上是使用特定的私钥克隆 repo:

GIT_SSH_COMMAND='ssh -i ../azure_id_rsa -o IdentitiesOnly=yes' git clone git@github.my-account/azure-config-server.git

在本地这工作得很好,所以这似乎证实了我在 Github 中的设置是正确的,并且使用私钥我应该能够在 Azure 中克隆你认为的 repo。

但是,如果我随后按照官方Azure documentation 中所述的说明使用 GUI 设置我的配置服务器,则会收到以下错误:

Failed to update Config Server.
Reason: Fail to update config server due to 'Health check timeout with 10 minutes'.

所以我尝试通过上传 yaml 文件来使用“导入设置”选项。我已经使用了这个Azure template,然后在其中使用“私钥”部分粘贴我的私钥(是的,Azure 的外壳需要像这样,根据 Azure 文档,它们只支持使用连字符而不是骆驼套管),如Spring documentation

中所述

但我一直收到同样的错误,所以我认为我的设置有问题,但我的选择已经用尽。如果有人有任何指点,将不胜感激。

【问题讨论】:

    标签: spring-cloud-config azure-spring-cloud


    【解决方案1】:

    好的,我想通了,只是在这里发布我的答案以防它对某人有所帮助。我刚刚注意到我的私钥与 Spring 示例中提到的私钥之间的一个区别。我的私钥以“-----BEGIN OPENSSH PRIVATE KEY-----”开头,而在 Spring 文档中,它以“-----BEGIN RSA PRIVATE KEY-----”开头。换句话说,它希望它是 pem 格式而不是 OpenSSH 格式。

    所以我现在通过如下生成我的密钥来让它工作(其中值得注意的标志是“-m pem”):

    ssh-keygen -t rsa -m pem -b 4096 -C "my@email.com"
    

    然后当我在 Github 中设置我的公钥并将我的私钥粘贴到 Azure Config Server 中时,它确实有效。

    希望这有助于节省一些时间,因为这让我费了不少心思。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2017-11-08
      • 2015-08-20
      • 2013-10-08
      • 2021-01-21
      • 2011-04-10
      • 2015-10-20
      相关资源
      最近更新 更多