Tuesday, November 09, 2004

paramiko: ssh2 protocol for python

paramiko: ssh2 protocol for python: "paramiko is a module for python 2.3 (though python 2.2 is also supported) that implements the SSH2 protocol for secure (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).

the module works by taking a socket-like object that you pass in, negotiating with the remote server, authenticating (using a password or a given private key), and opening flow-controled 'channels' to the server, which are returned as socket-like objects. you are responsible for verifying that the server's host key is the one you expected to see, and you have control over which kinds of encryption or hashing you prefer (if you care), but all of the heavy lifting is done by the paramiko module.

it is written entirely in python (no C or platform-dependent code) and is released under the GNU LGPL (lesser GPL)."