title: SSH connection to Azure VM with Terraform
body: <p>I have successfully created a VM as part of a Resource Group on Azure using Terraform. Next step is to ssh in the new machine and run a few commands. For that, I have created a provisioner as part of the VM resource and set up an SSH connection:</p>
  
  <pre><code>resource "azurerm_virtual_machine" "helloterraformvm" {
      name = "terraformvm"
      location = "West US"
      resource_group_name = "${azurerm_resource_group.helloterraform.name}"
      network_interface_ids = ["${azurerm_network_interface.helloterraformnic.id}"]
      vm_size = "Standard_A0"
  
      storage_image_reference {
          publisher = "Canonical"
          offer = "UbuntuServer"
          sku = "14.04.2-LTS"
          version = "latest"
      }
  
  
      os_profile {
          computer_name = "hostname"
          user     = "some_user"
          password = "some_password"
      }
  
      os_profile_linux_config {
          disable_password_authentication = false
      }
  
      provisioner "remote-exec" {
          inline = [
            "sudo apt-get install docker.io -y"
          ]
          connection {
            type     = "ssh"
            user     = "some_user"
            password = "some_password"
          }
      }
  
  }
  </code></pre>
  
  <p>If I run "terraform apply", it seems to get into an infinite loop trying to ssh unsuccessfully, repeating this log over and over:</p>
  
  <pre><code>azurerm_virtual_machine.helloterraformvm (remote-exec): Connecting to remote host via SSH...
  azurerm_virtual_machine.helloterraformvm (remote-exec):   Host:
  azurerm_virtual_machine.helloterraformvm (remote-exec):   User: testadmin
  azurerm_virtual_machine.helloterraformvm (remote-exec):   Password: true
  azurerm_virtual_machine.helloterraformvm (remote-exec):   Private key: false
  azurerm_virtual_machine.helloterraformvm (remote-exec):   SSH Agent: true
  </code></pre>
  
  <p>I'm sure I'm doing something wrong, but I don't know what it is :(</p>
  
  <p>EDIT:</p>
  
  <p>I have tried setting up this machine without the provisioner, and I can SSH to it no problems with the given username/passwd. However I need to look up the host name in the Azure portal because I don't know how to retrieve it from Terraform. It's suspicious that the "Host:" line in the log is empty, so I wonder if it has anything to do with that?</p>
  
  <p>UPDATE:</p>
  
  <p>I've tried with different things like indicating the host name in the connection with </p>
  
  <pre><code>host = "${azurerm_public_ip.helloterraformip.id}" 
  </code></pre>
  
  <p>and </p>
  
  <pre><code>host = "${azurerm_public_ip.helloterraformips.ip_address}"
  </code></pre>
  
  <p>as indicated in the docs, but with no success.</p>
  
  <p>I've also tried using ssh-keys instead of password, but same result - infinite loop of connection tries, with no clear error message as of why it's not connecting.</p>