tunnel-exec

0.1.2 • Public • Published

tunnel-exec

Opens an ssh connection, then a local tunnel to another host from there. After that, you can execute any action on the tunnel.

var tunnelExec = require('tunnel-exec')

tunnelExec(
    {
        remoteHost: 'example.com',
        remotePort: '22',

        targetHost: 'host2.example.com',
        targetPort: '1234',

        localPort: 9009,

        user: 'myUser',
        identityFile: '~/.ssh/id_rsa.pub',

        timeout: 30000
    },
    function(err, tunnel) {
      if(err) {
        console.log(err)
        process.exit(1)
      }

      // Do your stuff here

      // Close the tunnel
      tunnel.done()
    }
)

The previous options calls the ssh command as follows:

ssh -p 22 -L 9009:host2.example.com:1234 -i ~/.ssh/id_rsa.pub myUser@example.com

If the connection is not established within 30 seconds, the process stops with an error.

NOTE:

You should always call tunnel.done() when your function is finished. That way, the tunnel is closed and the process finished.

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i tunnel-exec

Weekly Downloads

31

Version

0.1.2

License

ISC

Last publish

Collaborators

  • mfgea