[paramiko] client.py in version 1.6.4
Robey Pointer
robey at lag.net
Sat Dec 30 22:42:12 PST 2006
On 28 Dec 2006, at 17:27, CK Tan wrote:
> In reference to bug# 69330 ("client.py doesn't handle nonexistant key
> files https://bugs.launchpad.net/products/paramiko/+bug/69330),
> the bug fix introduced another bug:
>
> keyfiles = []
> rsa_key = os.path.expanduser('~/.ssh/id_rsa')
> dsa_key = os.path.expanduser('~/.ssh/is_dsa')
> if os.path.isfile(rsa_key):
> keyfiles.append((RSAKey, rsa_key))
> if os.path.isfile(dsa_key):
> keyfiles.append((DSSKey, dss_key))
> for pkey_class, filename in keyfiles:
> ---> filename = os.path.expanduser(''~/.ssh/' + filename)
> try:
> key = pkey_class.from_private_key_file(filename,
> password)
> self._log(DEBUG, 'Trying discovered key %s in %s' %
> (hexlify(key.get_fingerprint()), filename))
> self._transport.auth_publickey(username, key)
> return
> except SSHException, e:
> saved_exception = e
> except IOError, e:
> saved_exception = e
>
> The indicated line above may result in ~/.ssh/ being expanded more
> than once,
> resulting in the error below:
>
> % python
> Python 2.3.5 (#1, Aug 19 2006, 21:31:42)
> [GCC 4.0.1 (Apple Computer, Inc. build 5363)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import paramiko
>>>> paramiko.__version__
> '1.6.4 (yanma)'
>>>> s = paramiko.SSHClient()
>>>> s.load_system_host_keys()
>>>> s.connect('localhost')
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "/Users/cktan/w/cdb2/mppMgmt/bin/lib/paramiko/client.py",
> line 277, in connect
> self._auth(username, password, pkey, key_filename)
> File "/Users/cktan/w/cdb2/mppMgmt/bin/lib/paramiko/client.py",
> line 405, in _auth
> raise saved_exception
> IOError: [Errno 2] No such file or directory: '/Users/cktan/.ssh//
> Users/cktan/.ssh/id_rsa'
>>>>
>
>
> Suggested fix:
>
> condition the clause by
> if filename.find('/.ssh/') >= 0: filename = os.path.expanduser
> ('~/.ssh/' + filename)
I believe this is fixed in the trunk, by removing the extra
expanduser call.
robey
More information about the paramiko
mailing list