@stordata/tunnel-exec

0.1.4 • 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',

        jumpHosts: [{
          user: 'jumpUser', // Default: user || ''
          host: 'jumpHost',
          port: 1234 // Default: remotePort
        }],

        compression: true, // Default: false

        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 -J jumpUser@jumpHost:1234 -C 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

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 0.1.4
    1
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 0.1.4
    1
  • 0.1.3
    0

Package Sidebar

Install

npm i @stordata/tunnel-exec

Weekly Downloads

1

Version

0.1.4

License

ISC

Unpacked Size

8.77 kB

Total Files

7

Last publish

Collaborators

  • bot-stordata
  • ddolcimascolo
  • yannours