Error: Error decoding “admin_ssh_key.0.public_key” for public key data
This is an error I encountered while trying to set the admin ssh key for a linux instance – and attempting to use an existing pub key in my .ssh folder (puttygen can be used to create ssh key pairs)
resource "azurerm_linux_virtual_machine" "myvm" {
name = local.vm_name
resource_group_name = azurerm_resource_group.rg_des.name
location = azurerm_resource_group.rg_des.location
size = var.vm_size
admin_username = "adminuser"
network_interface_ids = [
azurerm_network_interface.myvm.id,
]
admin_ssh_key {
username = "adminuser"
#public_key = file("~/.ssh/id_rsa.pub")
public_key = tls_private_key.linux_test_ssh.public_key_openssh
}
Instead of doing it through an existing key pair, I used terraform to create the ssh key pair. This worked – no error
# Create (and display) an SSH key
resource "tls_private_key" "linux_test_ssh" {
algorithm = "RSA"
rsa_bits = 4096
}
Summary
If you encounter this error on trying to create linux VMs on azure – Error decoding “admin_ssh_key.0.public_key” for public key data, try creating the key pair directly as a terraform resource.
Leave a Reply