Vayne::SSH::Tunnel - SSH tunnel wrapper
use Vayne::SSH::Tunnel;
Vayne::SSH::Tunnel::Run
(
name => 'tunnel_foo',
title => 'title_to_generate',
confdir => '/tmp/tun',
dport => 9999,
way => [ 'nobody@ser1.com', 'nobody@ser2.com', 'nobody@ser3.com' ],
user => 'nobody',
option => ['ServerAliveInterval=10', 'ServerAliveCountMax=3', 'StrictHostKeyChecking=no'],
timeout => 600,
max_channel => 50,
grep_word => {
'open failed' => 10,
'cannot listen to port' => 1,
},
);
Vayne::SSH::Tunnel is SSH tunnel wrapper.
Find a free port to do the ssh tunnel using 'ssh -L'.
The tunnel will die when the ssh's output line (STDIN/STDOUT) match below:
-
max_channel
Set the max $1 when match /channel (\d+):/
-
grep_word
Set the max time when optional word match.
Hold a file lock and generate the tunnel information when output meet 'Entering interactive session'.(The tunnel begin to work)
The file lock will not be released until the tunnel die.
You can use vayne-tunnel-info to gather all running tunnel info.
SiYu Zhao zuyis@cpan.org
Copyright 2016- SiYu Zhao
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.