Net::openssh adapter for net::ssh2 api compatibility
use Net::OpenSSH::Compat::SSH2 qw(:supplant); use Net::SSH2; my $ssh2 = Net::SSH2->new; $ssh2->connect('host'); $ssh2->auth_publickey("jsmith", "/home/jsmith/.ssh/id_dsa.pub", "/home/jsmith/.ssh/id_dsa"); my $c = $ssh2->channel; $c->exec("ls"); print while <$c>; $c->close; print "exit status: ", $c->exit_status, "\n";
This module implements Net::SSH2 \s-1API\s0 on top of Net::OpenSSH.
After the module is loaded as...
use Net::OpenSSH::Compat::SSH2 qw(:supplant);
it will supplant the Net::SSH2 module as if it was installed on the machine and use Net::OpenSSH under the hood to handle \s-1SSH\s0 operations.
Most programs using Net::SSH2 should continue to work without any change.
The hash %Net::OpenSSH::Compat::SSH2::DEFAULTS can be used to set default values for Net::OpenSSH and other modules called under the hood and otherwise not accesible through the Net::SSH2 \s-1API\s0.
The entries currently supported are: Extra options passed to \*(C`Net::OpenSSH::new\*(C' constructor. Example: $Net::OpenSSH::Compat::SSH2::DEFAULTS{connection} = [ ssh_path => "/opt/SSH/bin/ssh" ]; Extra options passed to \*(C`Net::OpenSSH::open_ex\*(C' method. Extra options passed to \*(C`Net::SFTP::Foreign::new\*(C' constructor. $Net::OpenSSH::Compat::SSH2::DEFAULTS{connection} = [ read_ahead => 128 * 1024, queue_size => 20 ];
This is a work in progress.
Besides that, there are some functionality of Net::SSH2 that can not be emulated with Net::OpenSSH. Fortunatelly, the missing bits are rarely used so probably you may not need them at all.
Specifically, the return values from the \*(C`$ssh2->method($ATTR)\*(C' are not real but faked ones. \*(C`auth_list\*(C' return value is also faked.
Anyway, if your Net::SSH2 script fails, fill a bug report at the \s-1CPAN\s0 \s-1RT\s0 bugtracker (https://rt.cpan.org/Ticket/Create.html?Queue=Net-OpenSSH-Compat <https://rt.cpan.org/Ticket/Create.html?Queue=Net-OpenSSH-Compat>) or just send me an e-mail with the details.
Include at least:
The source code repository is at https://github.com/salva/p5-Net-OpenSSH-Compat <https://github.com/salva/p5-Net-OpenSSH-Compat>.
If you like this module and you're feeling generous, take a look at my Amazon Wish List: <http://amzn.com/w/1WU1P6IR5QZ42>
Also consider contributing to the OpenSSH project this module builds upon: <http://www.openssh.org/donations.html>.
Copyright (C) 2011 by Salvador Fandin\*~o ([email protected])
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.10.0 or, at your option, any later version of Perl 5 you may have available.