parmiko problem
George Trojan
george.trojan at noaa.gov
Mon Jul 19 17:02:53 EDT 2010
George Trojan wrote:
> I have a problem with connecting to a host without specifying password
> (but with ssh keys configured correctly. That is
>
> [tina src]$ sftp alice
> Connecting to alice...
> sftp>
>
> works, but the code
>
> import paramiko
> paramiko.util.log_to_file('/tmp/paramiko')
> t = paramiko.Transport(('alice', 22))
> t.connect(username='gtrojan') # , password='a-passwd'])
> sftp = paramiko.SFTPClient.from_transport(t)
> sftp.close()
> t.close()
>
> results in the following output in /tmp/paramiko:
>
> DEB [20100719-19:58:22.497] thr=1 paramiko.transport: starting thread
> (client mode): 0xb81e1150L
> INF [20100719-19:58:22.501] thr=1 paramiko.transport: Connected
> (version 2.0, client OpenSSH_4.3)
> DEB [20100719-19:58:22.502] thr=1 paramiko.transport: kex
> algos:['diffie-hellman-group-exchange-sha1',
> 'diffie-hellman-group14-sha1', 'diffie-hellman-group1-sha1'] server
> key:['ssh-rsa', 'ssh-dss'] client encrypt:['aes128-cbc', '3des-cbc',
> 'blowfish-cbc', 'cast128-cbc', 'arcfour128', 'arcfour256', 'arcfour',
> 'aes192-cbc', 'aes256-cbc', 'rijndael-cbc at lysator.liu.se', 'aes128-ctr',
> 'aes192-ctr', 'aes256-ctr'] server encrypt:['aes128-cbc', '3des-cbc',
> 'blowfish-cbc', 'cast128-cbc', 'arcfour128', 'arcfour256', 'arcfour',
> 'aes192-cbc', 'aes256-cbc', 'rijndael-cbc at lysator.liu.se', 'aes128-ctr',
> 'aes192-ctr', 'aes256-ctr'] client mac:['hmac-md5', 'hmac-sha1',
> 'hmac-ripemd160', 'hmac-ripemd160 at openssh.com', 'hmac-sha1-96',
> 'hmac-md5-96'] server mac:['hmac-md5', 'hmac-sha1', 'hmac-ripemd160',
> 'hmac-ripemd160 at openssh.com', 'hmac-sha1-96', 'hmac-md5-96'] client
> compress:['none', 'zlib at openssh.com'] server compress:['none',
> 'zlib at openssh.com'] client lang:[''] server lang:[''] kex follows?False
> DEB [20100719-19:58:22.502] thr=1 paramiko.transport: Ciphers agreed:
> local=aes128-ctr, remote=aes128-ctr
> DEB [20100719-19:58:22.502] thr=1 paramiko.transport: using kex
> diffie-hellman-group1-sha1; server key type ssh-rsa; cipher: local
> aes128-ctr, remote aes128-ctr; mac: local hmac-sha1, remote hmac-sha1;
> compression: local none, remote none
> DEB [20100719-19:58:22.571] thr=1 paramiko.transport: Switch to new
> keys ...
> DEB [20100719-19:58:22.578] thr=2 paramiko.transport: [chan 1] Max
> packet in: 34816 bytes
> WAR [20100719-19:58:22.611] thr=1 paramiko.transport: Oops, unhandled
> type 3
> DEB [20100719-20:00:22.502] thr=1 paramiko.transport: EOF in transport
> thread
>
> and a traceback in the terminal:
>
> Traceback (most recent call last):
> File "./try.py", line 18, in <module>
> sftp = paramiko.SFTPClient.from_transport(t)
> File "build/bdist.linux-x86_64/egg/paramiko/sftp_client.py", line 102,
> in from_transport
> File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 655,
> in open_session
> File "build/bdist.linux-x86_64/egg/paramiko/transport.py", line 745,
> in open_channel
> EOFError
>
> When the remove the comment on the connect() line and specify password
> the code works fine. Is this a bug, or I am missing something? I am
> running Python 2.6.3 on Centos 5.4.
>
> George
Thanks for listening;-) Found my problem - has to pass private key to
connect():
paramiko.util.log_to_file('/tmp/paramiko')
t = paramiko.Transport(('alice', 22))
path = os.path.join(os.environ['HOME'], '.ssh', 'id_dsa')
key = paramiko.DSSKey.from_private_key_file(path)
t.connect(username='gtrojan', pkey=key)
sftp = paramiko.SFTPClient.from_transport(t)
print sftp.listdir()
sftp.close()
t.close()
More information about the Python-list
mailing list