针对SSH密钥Linux VM ARM模板的错误引用Azure密钥保管库密钥

问题描述 投票:-1回答:1

我正在尝试通过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。“,

azure azure-resource-manager
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.