Popularity
1.0
Growing
Activity
0.0
Stable
35
1
2

Code Quality Rank: L4
Monthly Downloads: 0
Programming language: JavaScript
License: Mozilla Public License 2.0
Tags: Miscellaneous     Reverse     SSH     Forwarding     Adit     Tunnel    
Latest version: v1.0.11

adit alternatives and similar modules

Based on the "Miscellaneous" category.
Alternatively, view adit alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of adit or a related project?

Add another 'Miscellaneous' Module

README

Adit Build Status Coverage Status

Forward all your stuff through ssh tunnel.

There is a lot of examples out there how this could be useful, for example, check out "SSH Tunnel - Local and Remote Port Forwarding Explained With Examples"

Usage

ssh and Adit

$ ssh -L 9000:imgur.com:80 example.com
new Adit('9000:imgur.com:80 example.com'/*, password*/).forward().then(adit => {
  console.log('success');

  adit.close();
});

$ ssh -R 9000:localhost:3000 example.com

new Adit('9000:localhost:3000 example.com'/*, password*/).reverse().then(adit => {
  console.log('success');

  adit.close();
});

Listen for events

let server = new Adit(...);
server.on('ready', ...);
server.on('tcp connection', ...)
server.on('error', ...);
server.on('data', ...);

server.forward(...).then(...);

Thorough

import Adit from 'adit';

let adit = new Adit({

  host: `example.com`

  // Everything else is optional
  // username: 'tester' // By default, `USER` environment variable will be used

  // port: 22, // 22 By default
  // Or port range - 
  // port: [22, 23], the first available port of the three will be used

  // Also, see "Authentification strategy" below - 
  // "agent": "path",
  // "password": "pass",
  // "key": Buffer
});

// Or just
let adit = new Adit('example.com');

// `3` - is how many times we want to try to connect, before bailing out */
adit.open(3).then(connection => {
  // At this point we established connection with remote server

  // Forward all connections from **local** server to remote one
  connection.out({
    // from
    host: 'example.com'
    port: 80
  }, {
    // To
    host: 'localhost'
    port: 8080,
    // Or port range - 
    // port: [25, 28], the first available port of the three will be used
  }).then(() => {
    // Forwarding is enabled
  });

  // Forward all connections from **remote** server to local one
  connection.in({
    // from
    host: 'example.com'
    port: 80,
    // Or port range - 
    // port: [25, 28], the first available port of the three will be used
  }, {
    // To
    host: 'localhost'
    port: 8080
  }).then(() => {
    // Forwarding is enabled
  });
}, error => {
  console.error(error);
});

adit.on('error', () => {
  // Report error
});

// Then, after awhile you would want to close it
adit.close();

Authentification strategy

  • If password is defined - use it
  • If agent or key is defined explicitly - use one of them, prioritize the agent
  • If agent or key is not passed - use environment varibles (SSH_AUTH_SOCK for agent)

Note: if key is used, assume it is added without passphrase, otherwise you should use agent