[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#436207: ITP: libnet-ssh-perl-perl -- Net::SSH::Perl is an all-Perl module implementing an SSH (Secure Shell) client. It is compatible with both the SSH-1 and SSH-2 protocols.




Package: wnpp
Severity: wishlist
Owner: Deepak Tripathi  <apenguinlinux@gmail.com>

* Package name        : libnet-ssh-perl-perl
  Version                   : 1.30
  Upstream Author(s)  : David Robins <dbrobins@cpan.org>,Dave Rolsky <autarch@urth.org>, Benjamin Trott.
* URL                        : http://search.cpan.org/~dbrobins/Net-SSH-Perl-1.30/

* License                   : Artistic
  Programming Lang   : Perl
  Description              : Perl interface to the libssh2 library

Net::SSH::Perl is an all-Perl module implementing an SSH (Secure Shell) client. It is compatible with both the SSH-1 and SSH-2 protocols.

Net::SSH::Perl enables you to simply and securely execute commands on remote machines, and receive the STDOUT, STDERR, and exit status of that remote command. It contains built-in support for various methods of authenticating with the server (password authentication, RSA challenge-response authentication, etc.). It completely implements the I/O buffering, packet transport, and user authentication layers of the SSH protocol, and makes use of external Perl libraries (in the Crypt:: family of modules) to handle encryption of all data sent across the insecure network. It can also read your existing SSH configuration files (/etc/ssh_config, etc.), RSA identity files, DSA identity files, known hosts files, etc.

One advantage to using Net::SSH::Perl over wrapper-style implementations of ssh clients is that it saves on process overhead: you no longer need to fork and execute a separate process in order to connect to an sshd. Depending on the amount of time and memory needed to fork a process, this win can be quite substantial; particularly if you're running in a persistent Perl environment (mod_perl, for example), where forking a new process is a drain on process and memory resources.

It also simplifies the process of using password-based authentications; when writing a wrapper around ssh you probably need to use Expect to control the ssh client and give it your password. Net::SSH::Perl has built-in support for the authentication protocols, so there's no longer any hassle of communicating with any external processes.

The SSH2 protocol support (present in Net::SSH::Perl as of version 1.00) is compatible with the SSH2 implementation in OpenSSH, and should also be fully compatible with the "official" SSH implementation. If you find an SSH2 implementation that is not compatible with Net::SSH::Perl, please let me know (email address down in AUTHOR & COPYRIGHTS); it turns out that some SSH2 implementations have subtle differences from others. 3DES (3des-cbc), Blowfish (blowfish-cbc), and RC4 (arcfour) ciphers are currently supported for SSH2 encryption, and integrity checking is performed by either the hmac-sha1 or hmac-md5 algorithms. Compression, if requested, is limited to Zlib. Supported server host key algorithms are ssh-dss (the default) and ssh-rsa (requires Crypt::RSA); supported SSH2 public key authentication algorithms are the same.


--
Deepak Tripathi
E3 71V3 8Y C063 (We Live By Code)
http://deepkatripathi.blogspot.com

Reply to: