错误重新定义SSH密钥Linux VM ARM模板的Azure密钥保管库密钥

时间:2020-03-07 19:36:56

标签: azure azure-resource-manager

我正在尝试通过arm模板为Linux虚拟机获取ssh public。公钥是密钥库中的秘密。

有人在下面遇到这样的问题吗?如果是这样,解决办法是什么?我尝试了使用ssh-keygen -t rsa -b 2048生成的多个密钥。如果我将密钥字符串作为字符串直接复制到keydata属性中,那么它将起作用。

假设我可以使用ssh密钥代替adminpassword,我已经从Microsoft文档中复制了以下代码

"ssh": {
                            "publicKeys": [
                                {
                                    "path": "/home/bluecat/.ssh/authorized_keys",
                                    "keyData": {
                                        "reference": {
                                             "keyVault": {
                                                "id": "[resourceId(subscription().subscriptionId,resourceGroup().name,'Microsoft.KeyVault/vaults','kvbluecat')]"
                                                    },
                                            "secretName":"bluecatpub"
                                        }
                                    }
                                }
                            ]

在解析值之后,遇到意外字符::。路径 'properties.osProfile.linuxConfiguration.ssh.publicKeys [0] .keyData', 第1行,位置958。”,

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。事实证明,以这种方式使用的引用属性(引用{})仅在参数模式中可用,而在包含模板json的主部署模板模式中不可用。

将密钥库密钥的引用属性放入参数json文件后,问题已解决。