http://www.perlmonks.org?node_id=999475


in reply to Multilevel SSH

You can use Net::OpenSSH and Net::OpenSSH::Gateway. The later is not on CPAN yet because I am not completely happy with its internals, but otherwise it is completely functional.

Once installed, you can run:

my $ssh = Net::OpenSSH->new($target, gateway => { proxies => ['ssh://serverA', 'ssh://serverB'] +}); my $output = $ssh->capture('ls');
Under the hood it uses several tricks to find a way to jump from one hop to the next, as creating tunnels or running any of socat, netcat or perl.

Replies are listed 'Best First'.
Re^2: Multilevel SSH
by grantm (Parson) on Oct 18, 2012 at 02:14 UTC
    Under the hood it uses several tricks to find a way to jump from one hop to the next, as creating tunnels or running any of socat, netcat or perl.

    I learned recently that the latest versions of OpenSSH support -W host : port to do what historically we've done with socat/netcat.

      I know, I requested it :-)

      Net::OpenSSH::Gateway already supports it but -W requires port forwarding to be enabled on the server and, in my experience, that feature is frequently disabled in ssh gateways for security reasons.