Nuclear Powered Macros

    open-ssh-tunnel

    0.3.1 • Public • Published

    open-ssh-tunnel

    Easy ssh tunneling function based on ssh2 library

    Inspired by tunnel-ssh, but with simplified, more modern code.

    Travis Build Status NPM module NPM downloads

    Installation

    npm install --save open-ssh-tunnel

    Usage

      const openSshTunnel = require('open-ssh-tunnel');
      async function openATunnel() {
        const server = await openSshTunnel({
          host: 'your.server.address.com',
          username: 'you',
          password: 'secret',
          srcPort: 3306,
          srcAddr: '127.0.0.1',
          dstPort: 3306,
          dstAddr: '127.0.0.1',
          readyTimeout: 1000,
          forwardTimeout: 1000,
          localPort: 3306,
          localAddr: '127.0.0.1'
        });
     
        // you can now connect to your
        // forwarded tcp port!
     
        // later, when you want to close the tunnel
        server.close();
      }
     

    API

    The module exports openSshTunnel function. It return a promise that resolve to a node net server instance if tunnel is opened, otherwise is rejected with an error.

    Options

    • srcIP and srcPort as the originating address and port and dstIP and dstPort as the remote destination address and port. These are options passed to ssh2 Client.forwardOut method.

    • forwardTimeout - How many millisecond to wait before reject with a timeout error.

    • localAddr and localPort are the address and port of the local endpoint of the tunnel on your machine. They are passed to net server connect method.

    • All other options are passed to ssh2 Client.connect method.

    Related

    • electron-tunnel - Awesome Electron app to manage your ssh tunnels - powered by this module.

    License

    The MIT License (MIT)

    Copyright (c) 2015 parro-it

    Install

    npm i open-ssh-tunnel

    DownloadsWeekly Downloads

    51

    Version

    0.3.1

    License

    MIT

    Last publish

    Collaborators

    • parroit