Thanks,

I'll have a look as soon as possible.

On Wed, Mar 20, 2013 at 5:39 AM, Chris Psaltis <cpsal...@mist.io> wrote:

> Hi all,
>
> I just opened a ticket for this and submitted a patch. Take a look at
> https://issues.apache.org/**jira/browse/LIBCLOUD-309<https://issues.apache.org/jira/browse/LIBCLOUD-309>
>
> Thanks,
>
> Chris
>
>
> On 2013-03-18 17:28, Rudolf Streif wrote:
>
>> Short of fixing paramiko which is probably not what we want, imho it
>> would be beneficial to just catch the paramiko exception and throw a
>> libcloud exception that just adds some additional hints as to what
>> could have failed, such as username and key. For most cases that would
>> go a long way.
>>
>> :rjs
>>
>> On Fri, Mar 15, 2013 at 9:07 PM, Tomaz Muraus <to...@apache.org> wrote:
>>
>>  I just spent some time looking into it. It looks like paramiko throws
>>> "not
>>> a valid DSA private key file" exception if you specify a valid ssh key,
>>> but
>>> an invalid username.
>>>
>>> This is unfortunate, because it makes it impossible to differentiate
>>> between actual invalid key file and an invalid username.
>>>
>>> From the paramiko debug logs:
>>>
>>> DEBUG:paramiko.transport:**Trying key 4334c61b988ac5eac5152721d2acae**08
>>> from
>>>
>>>> test2.pem
>>>> DEBUG:paramiko.transport:**userauth is OK
>>>> INFO:paramiko.transport:**Authentication (publickey) failed.
>>>>
>>>
>>> Keep the following things in mind:
>>>
>>> - test2.pem is in fact a valid and working private key
>>> - SSH agent is not used when you specify a password or a key file (we
>>> pass
>>> 'look_for_keys': False, and 'allow_agent': False to paramiko).
>>>
>>> This actually seems like a paramiko issue so I will try to dig some more
>>> there.
>>>
>>> On Fri, Mar 15, 2013 at 8:27 PM, Tomaz Muraus <to...@apache.org> wrote:
>>>
>>>  Thanks for your feedback.
>>>>
>>>> I personally think that the first thing we (Libcloud) need to do it
>>>> detect
>>>> and propagate correct exception to the caller.
>>>>
>>>> For example, if a user provides an invalid username, password or private
>>>> key we should throw InvalidAuthenticationCredentia**ls and if an
>>>> invalid
>>>> authentication method is provided we should throw
>>>> InvalidAuthenticationMethod.
>>>>
>>>> Because of how SSH protocol works (
>>>> http://tools.ietf.org/html/**rfc4252#section-5.1<http://tools.ietf.org/html/rfc4252#section-5.1>[1])
>>>>  we can't detect other or
>>>>
>>>> a more specific errors (please correct me if I'm wrong).
>>>>
>>>> I also agree that "cycling through usernames" is a hacky solution, but
>>>> it's not really much we can do in this case. I'm personally open to
>>>> adding
>>>> something like that once #1 has been figured out as long as a user can
>>>> disable it or maybe it should even be off by default.
>>>>
>>>> On Fri, Mar 15, 2013 at 3:52 AM, Chris Psaltis <cpsal...@mist.io>
>>>> wrote:
>>>>
>>>>  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 <to...@apache.org>
>>>>>> 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 <
>>>>>>> rstr...@linuxfoundation.org
>>>>>>>
>>>>>>>  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 [2]
>>>>>
>>>>> down to earth cloud computing
>>>>>
>>>>>
>>>>
>>>>
>> --
>> --
>> RUDOLF J. STREIF
>>
>> Director of Embedded Solutions
>> The Linux Foundation
>>
>> rudolf.str...@linux.com
>> Phone: +1.619.631.5383
>> Skype: rudolfstreif
>> PGP: RSA 2048/2048 D6E7D28B
>>
>> Linux Foundation Events Schedule:  events.linuxfoundation.org [3]
>>  Linux Foundation Training Schedule: 
>> training.**linuxfoundation.org<http://training.linuxfoundation.org>[4]
>>
>>
>>
>> Links:
>> ------
>> [1] 
>> http://tools.ietf.org/html/**rfc4252#section-5.1<http://tools.ietf.org/html/rfc4252#section-5.1>
>> [2] http://mist.io
>> [3] http://events.linuxfoundation.**org/<http://events.linuxfoundation.org/>
>> [4] 
>> http://training.**linuxfoundation.org/<http://training.linuxfoundation.org/>
>>
>
> --
> mist.io
> down to earth cloud computing
>

Reply via email to