我创建了用于自动创建和/或更新的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说明。
我在做什么错了?
答案 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。这是一个常见的复制粘贴问题,只是将常规的空格字符替换为换行符。