0

我在使用 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 官方文档中所述的说明使用 GUI 设置我的配置服务器,则会收到以下错误:

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

所以我尝试通过上传 yaml 文件来使用“导入设置”选项。我使用了这个Azure 模板,然后在其中使用“私钥”部分粘贴我的私钥(是的,Azure 的大小写必须是这样的,根据 Azure 文档,它们只支持使用连字符而不是驼峰的属性套管)如Spring 文档中所述

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

4

1 回答 1

0

好的,我想通了,只是在这里发布我的答案以防万一。我刚刚注意到我的私钥与 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 中时,它确实有效。

希望这有助于节省一些时间,因为我花了很多时间弄清楚。

于 2020-07-03T14:14:13.763 回答