Azure DevOps管道错误-参数linuxProfile.ssh.publicKeys.keyData的值无效

时间:2019-06-07 10:04:27

标签: azure azure-devops azure-virtual-machine azure-resource-manager

我创建了用于自动创建和/或更新的ARM模板。我使用Azure bash命令行生成了RSA公钥,并将其输入到ARM模板中。我在Azure DevOps管道中使用模板。部署失败。错误消息:

[error]InvalidParameter: Provisioning of resource(s) for container service aks-openfaas-test-0619 in resource group rg-openfaas--test-0619 failed. Message: {
  "code": "InvalidParameter",
  "message": "The value of parameter linuxProfile.ssh.publicKeys.keyData is invalid. Please see https://aka.ms/aks-naming-rules for more details.",
  "target": "linuxProfile.ssh.publicKeys.keyData"
 }. Details:  undefined

我遵循了https://docs.microsoft.com/en-us/azure/virtual-machines/linux/mac-create-ssh-keys上的Microsoft说明。

我在做什么错了?

2 个答案:

答案 0 :(得分:0)

尝试在AKS节点池中使用时出现此错误。

在末尾添加\n。 pub文件的内容如下所示,将json中的windowsuser@computername替换为\n

ssh-rsa ***Key*** windowsuser@computername
"linuxProfile": {
                    "adminUsername": "azureuser",
                    "ssh": {
                      "publicKeys": [
                        {
                            "keyData": "ssh-rsa *****Key*****\n"
                        }
                      ]
                    }
                  }

答案 1 :(得分:0)

尝试使用Azure模板创建新的VM时出现相同的错误

就我而言,我必须在密钥的末尾添加更多\n,而不仅仅是一个。

如果您具有以下格式的公用SSH密钥:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20200611"
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF==
---- END SSH2 PUBLIC KEY ----

将其复制并粘贴到模板字段中后:Admin Public Key * :

如果您用\n至少替换了四行,并删除了随机生成的密钥内的所有多余空格,那么我终于可以正常工作了。

---- BEGIN SSH2 PUBLIC KEY ----\nComment: \"rsa-key-20200611\"\nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF==\n---- END SSH2 PUBLIC KEY ----\n

另一种选择是,如果要使其完全遵循相同的格式,则也可以用' '的键内的任何空格字符'\n'替换。

执行此操作后,密钥的格式将正确,您将获得使用模板正确创建的VM。这是一个常见的复制粘贴问题,只是将常规的空格字符替换为换行符。