首页 > 解决方案 > Azure ARM - 增量重新部署期间的 SSH 公钥错误

问题描述

Changing property 'linuxConfiguration.ssh.publicKeys' is not allowed标题不是很清楚,但基本上,当以增量模式重新部署 ARM 模板时,我得到了。

自初始部署以来,管理员用户已更改 SSH 密钥~/.ssh/authorized_keys,这是有道理的。所以我进入文件,将其重置为与 ARM 模板中相同的公钥,重新运行整个过程:仍然失败。

尝试使用 Azure 门户重置值,同时执行了 aReset SSH public keyReset configuration only,但模板仍然失败。

我实际上是在复制 SSH 密钥,因为它在 ARM 模板的参数中声明,并将其应用于同一用户,但它仍然失败。是否有我遗漏的东西,或者只要文件以任何方式更改,模板就变得基本上无用,而无需在完整模式下完全重新部署?

谢谢!

标签: azureazure-resource-manager

解决方案


由于显示的错误,不允许直接更改属性“osProfile”。这意味着您的 VM 已经创建,但您尝试使用不同的 publicKey 更新它(即使您复制相同的authorized_keys文件内容),ARM 模板不支持这种方式。你可以看看this1this2

如果要更新 ssh 公钥,可以使用以下 az cli 命令

az vm extension set -n VMAccessForLinux --publisher Microsoft.OSTCExtensions --version 1.4 \
    --vm-name MyVm --resource-group MyResourceGroup \
    --protected-settings '{"username":"user1", "ssh_key":"ssh_rsa ..."}'

推荐阅读