azure - Azure ARM - 增量重新部署期间的 SSH 公钥错误
问题描述
Changing property 'linuxConfiguration.ssh.publicKeys' is not allowed
标题不是很清楚,但基本上,当以增量模式重新部署 ARM 模板时,我得到了。
自初始部署以来,管理员用户已更改 SSH 密钥~/.ssh/authorized_keys
,这是有道理的。所以我进入文件,将其重置为与 ARM 模板中相同的公钥,重新运行整个过程:仍然失败。
尝试使用 Azure 门户重置值,同时执行了 aReset SSH public key
和Reset configuration only
,但模板仍然失败。
我实际上是在复制 SSH 密钥,因为它在 ARM 模板的参数中声明,并将其应用于同一用户,但它仍然失败。是否有我遗漏的东西,或者只要文件以任何方式更改,模板就变得基本上无用,而无需在完整模式下完全重新部署?
谢谢!
解决方案
由于显示的错误,不允许直接更改属性“osProfile”。这意味着您的 VM 已经创建,但您尝试使用不同的 publicKey 更新它(即使您复制相同的authorized_keys
文件内容),ARM 模板不支持这种方式。你可以看看this1和this2。
如果要更新 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 ..."}'
推荐阅读
- javascript - 本地 html 站点重定向到在线站点
- html - *ngIf else 一段时间后转到 else 模板
- javascript - 在 keyup 上设置范围滑块进度
- java - 序列化接收到的具有“LocalDateTime”数据类型的 JSON 对象
- python - 序列化数据类列表:str 总是调用 repr
- php - 我们如何通过限制相同列数MySql从表中获取数据
- fortran - Fortran 满足某些条件时如何跳过行?
- python - 基于单个字典中键的值的平均值和标准差
- android - 如果使用片段管理器和导航控制器,片段不可见
- java - 向/从此 Map 添加/删除时,如何扩展 java 的 HashMap 以添加钩子操作?