2004-01-04 05:26:00 -05:00
|
|
|
paramiko 0.9
|
2004-03-08 12:52:25 -05:00
|
|
|
"eevee" release, 08 mar 2004
|
2003-11-04 03:34:24 -05:00
|
|
|
|
2004-01-04 05:26:00 -05:00
|
|
|
Copyright (c) 2003-2004 Robey Pointer <robey@lag.net>
|
2003-11-04 03:34:24 -05:00
|
|
|
|
2003-11-10 03:49:50 -05:00
|
|
|
http://www.lag.net/~robey/paramiko/
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
*** WHAT
|
|
|
|
|
2003-11-10 03:49:50 -05:00
|
|
|
"paramiko" is a combination of the esperanto words for "paranoid" and "friend".
|
|
|
|
it's a module for python 2.3 that implements the SSH2 protocol for secure
|
2003-11-04 03:34:24 -05:00
|
|
|
(encrypted and authenticated) connections to remote machines. unlike SSL (aka
|
|
|
|
TLS), SSH2 protocol does not require heirarchical certificates signed by a
|
|
|
|
powerful central authority. you may know SSH2 as the protocol that replaced
|
|
|
|
telnet and rsh for secure access to remote shells, but the protocol also
|
|
|
|
includes the ability to open arbitrary channels to remote services across the
|
|
|
|
encrypted tunnel (this is how sftp works, for example).
|
|
|
|
|
|
|
|
it is written entirely in python (no C or platform-dependent code) and is
|
|
|
|
released under the GNU LGPL (lesser GPL).
|
|
|
|
|
2004-01-04 04:29:13 -05:00
|
|
|
the package and its API is fairly well documented in the "doc/" folder that
|
|
|
|
should have come with this archive.
|
|
|
|
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
*** REQUIREMENTS
|
|
|
|
|
|
|
|
python 2.3 <http://www.python.org/>
|
2004-01-04 04:29:13 -05:00
|
|
|
pyCrypt <http://www.amk.ca/python/code/crypto.html>
|
|
|
|
|
|
|
|
PyCrypt compiled for Win32 can be downloaded from the HashTar homepage:
|
|
|
|
http://nitace.bsd.uchicago.edu:8080/hashtar
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
*** PORTABILITY
|
|
|
|
|
|
|
|
i code and test this library on Linux and MacOS X. for that reason, i'm
|
|
|
|
pretty sure that it works for all posix platforms, including MacOS. i also
|
|
|
|
think it will work on Windows, though i've never tested it there. if you
|
|
|
|
run into Windows problems, send me a patch: portability is important to me.
|
|
|
|
|
|
|
|
the Channel object supports a "fileno()" call so that it can be passed into
|
|
|
|
select or poll, for polling on posix. once you call "fileno()" on a Channel,
|
|
|
|
it changes behavior in some fundamental ways, and these ways require posix.
|
2004-01-04 04:29:13 -05:00
|
|
|
so don't call "fileno()" on a Channel on Windows. this is detailed in the
|
|
|
|
documentation for the "fileno" method.
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
|
|
|
|
*** DEMO
|
|
|
|
|
2003-11-10 01:52:35 -05:00
|
|
|
the demo client (demo.py) is a raw implementation of the normal 'ssh' CLI tool.
|
2003-11-10 03:49:50 -05:00
|
|
|
while the paramiko library should work on all platforms, the demo app will only
|
2003-11-04 03:34:24 -05:00
|
|
|
run on posix, because it uses select.
|
|
|
|
|
|
|
|
you can run demo.py with no arguments, or you can give a hostname (or
|
|
|
|
username@hostname) on the command line. if you don't, it'll prompt you for
|
|
|
|
a hostname and username. if you have an ".ssh/" folder, it will try to read
|
|
|
|
the host keys from there, though it's easily confused. you can choose to
|
2004-01-04 04:29:13 -05:00
|
|
|
authenticate with a password, or with an RSA or DSS key.
|
2003-11-04 03:34:24 -05:00
|
|
|
|
2003-11-10 03:49:50 -05:00
|
|
|
the demo app leaves a logfile called "demo.log" so you can see what paramiko
|
2003-11-04 03:34:24 -05:00
|
|
|
logs as it works. but the most interesting part is probably the code itself,
|
2003-11-10 03:49:50 -05:00
|
|
|
which hopefully demonstrates how you can use the paramiko library.
|
2003-11-04 03:34:24 -05:00
|
|
|
|
2004-01-04 04:29:13 -05:00
|
|
|
a simpler example is in demo_simple.py, which is a copy of the demo client
|
|
|
|
that uses the simpler "connect" method call (new with 0.9-doduo).
|
|
|
|
|
2003-11-10 01:52:35 -05:00
|
|
|
there's also now a demo server (demo_server.py) which listens on port 2200
|
|
|
|
and accepts a login (robey/foo) and pretends to be a BBS, just to demonstrate
|
|
|
|
how to perform the server side of things.
|
|
|
|
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
*** USE
|
|
|
|
|
2004-01-04 04:29:13 -05:00
|
|
|
the demo clients (demo.py & demo_simple.py) and the demo server
|
|
|
|
(demo_server.py) are probably the best example of how to use this package.
|
|
|
|
there is also a lot of documentation, generated with epydoc, in the doc/
|
|
|
|
folder. point your browser there. seriously, do it. mad props to epydoc,
|
|
|
|
which actually motivated me to write more documentation than i ever would
|
|
|
|
have before.
|
2003-11-10 01:52:35 -05:00
|
|
|
|
2004-03-08 12:52:25 -05:00
|
|
|
there are also unit tests here:
|
|
|
|
$ python2 ./test.py
|
|
|
|
which will verify that some of the core components are working correctly.
|
|
|
|
not much is tested yet, but it's a start. the tests for SFTP are probably
|
|
|
|
the best and easiest examples of how to use the SFTP class.
|
|
|
|
|
2003-11-04 03:34:24 -05:00
|
|
|
|
|
|
|
*** MISSING LINKS
|
|
|
|
|
|
|
|
* ctr forms of ciphers are missing (blowfish-ctr, aes128-ctr, aes256-ctr)
|
|
|
|
* multi-part auth not supported (ie, need username AND pk)
|
2004-01-04 04:29:13 -05:00
|
|
|
* server mode needs better documentation
|
2004-03-08 12:52:25 -05:00
|
|
|
* sftp server mode
|