We bumped into this as well as few days ago.
The issue is that you can't suppose beforehand what is the ssh_username
for a specific image. We currently solve it in our application by
creating a map of ami ids -> ssh_usernames and passing the correct one
to libcloud. However, I think this should be handled on the libcloud
level. One idea is to try/except for several known ssh_usernames, e.g.
ec2-user, ubuntu etc. It is not very graceful, but probably it's the
most robust solution that will require less maintenance.
What ideas do you have? I'm willing to implement it next week.
Thanks,
Chris
On 2013-03-15 00:12, Rudolf Streif wrote:
Thank you, Tomaz. I actually had both issues, username and key. And
once I
added ssh_key to the mix it actually started working. :)
On Thu, Mar 14, 2013 at 11:50 AM, Tomaz Muraus <[email protected]>
wrote:
Yes, you need to pass ssh_username="ubuntu" kwarg to the deploy_node
method.
I honestly thought this was documented on the website somewhere, but
I
couldn't find it just by quickly glancing over "getting started" and
"docs". This means that even if it is documented somewhere it's not
documented / presented in a good way if I can't find it myself. We
will
definitely work on improving the docs and pointing this out
more prominently.
This thing is also one of the improvements I'm working on for the
next
release and some of the improvements are already available in trunk
and
0.12.x branch.
Currently, even if you use LIBCLOUD_DEBUG functionality, you get a
bad /
unrelated exception if you use a correct key, but an invalid SSH
username.
paramiko library log messages are especially confusing. They don't
indicate
any error and one of them even says something along the lines of
"authentication successful".
All of this makes for a bad user experience so I will try to figure
out the
best way to detect this issue and throw a more specific exceptions so
people won't be confused and need to waste a lot of time on this.
On Thu, Mar 14, 2013 at 11:39 AM, Rudolf Streif <
[email protected]
wrote:
Thanks, Tomaz.
I tried to use deploy_node with EC2. I used a key pair already
existing
and set the security group right. However, it fails when logging
into the
node and trying to deploy the scripts. I am doing this:
node = ec2driver.deploy_node(name='test-3', image=image, size=size,
deploy=msd, ex_keyname="key")
The image is a Ubuntu 12.10 64-bit, ami-7539b41c
The size is t1.micro
The error I am getting is libcloud.compute.types.DeploymentError:
<DeploymentError: node=i-11f73563, error=Bad authentication type
(allowed_types=['publickey']),
driver=<libcloud.compute.drivers.ec2.EC2NodeDriver object at
0xdb0b90>>
I can log in just fine using ssh. The issue could be that the image
expects logins as user "ubuntu" rather than root. Can I set the user
with
the kwargs?
Thanks,
Rudi
--
--
mist.io
down to earth cloud computing