NAME

    Vayne::SSH::Tunnel - SSH tunnel wrapper

SYNOPSIS

      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,
          },
      );

DESCRIPTION

    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.

AUTHOR

    SiYu Zhao <zuyis@cpan.org>

COPYRIGHT

    Copyright 2016- SiYu Zhao

LICENSE

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO