Ask Your Question

Heat Virtual Machines Inaccessible

asked 2014-06-03 10:08:31 -0500

Wendy gravatar image

Newbie alert! I am experimenting with Heat and have created a simple stack with 2 ubuntu vms using my usual keypair. After they are up and running, I assigned a public IP and tried to ssh to one of the VMs using putty. However, when I try to connect I get an error saying "Disconnected: No supported authentication methods available (server sent: publickey)" and then "Server refused our key".

I have created a VM manually (ie. not using Heat) using the same keypair and I can connect just fine.

Is there something different about the way the VMs are run via Heat? And if so, any ideas as to what I should do to be able to access my VMs?

edit retag flag offensive close merge delete


Heat doesn't do anything special, it just passes the properties you give a resource along to Nova. So if it works on a VM created using Nova, then passing the same keypair name through Heat should work too. Maybe double-check that the template is passing the keypair name to the server resource?

zaneb gravatar imagezaneb ( 2014-06-03 13:53:02 -0500 )edit

Thanks for the response. When I look at the dashboard, all the VMs (those created via Heat & those created "manually") use the same keypair.

Wendy gravatar imageWendy ( 2014-06-03 14:00:43 -0500 )edit

You've discovered a genuine mystery then :(

My best guess is that cloud-init is somehow failing to set up the ssh key. I suggest you raise a bug against Heat at and we'll try to figure it out from there (a lot more information will be required).

zaneb gravatar imagezaneb ( 2014-06-03 15:03:05 -0500 )edit

Thanks. I appreciate your time.

Wendy gravatar imageWendy ( 2014-06-04 10:07:00 -0500 )edit

2 answers

Sort by » oldest newest most voted

answered 2015-02-17 08:18:14 -0500

MCo gravatar image


I faced the same problem and this is how I fixed it. In the definition of the OS::Nova::Server resource, you need to add property "admin_user: ubuntu". This (now deprecated) property defines the name of the administrative user that heat associates the key to. The value depends on the operating system of the VM you are booting: "ubuntu" for Ubuntu, "fedora" for Fedora and "cloud-user” for CentOS/RHEL 6.5 (see also ). Starting from Juno, you probably can avoid this definition and the association between the admin user and the key is automatic. The reason why you cannot login if you don't specify admin_user is that heat automatically associates your key to administrative user "root" by default and independently on the operating system you are launching.

edit flag offensive delete link more


Thanks. You solver my problem!

Eduardo Stephan gravatar imageEduardo Stephan ( 2016-07-08 12:40:58 -0500 )edit

answered 2014-06-23 07:33:54 -0500

Check the /etc/heat/heat.conf for the parameter instance_user. For all the VMs provisioned through Heat, the username has to be the one set in instance_user. Try with the default user ec2-user with the same key pair. It should work.

edit flag offensive delete link more

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower


Asked: 2014-06-03 10:08:31 -0500

Seen: 1,017 times

Last updated: Feb 17 '15