Como usar o Node.js para estabelecer uma conexão de encapsulamento SSH com um banco de dados MongoDB

Minhas credenciais funcionam perfeitamente com o Robomongo, mas não consigo fazer a conexão com o node.js
Eu tentei fazer a conexão usando o módulo ssh2 e tunnel-ssh npm e falhei as duas vezes.
-A conexão mongo não requer uma senha
-A conexão ssh é feita com uma chave pem

Este é o código que usei com o módulo ssh2, posso estabelecer o encapsulamento corretamente, mas a conexão do mongo falha

var Client = require('ssh2').Client;

var conn = new Client();
conn.on('ready', function() {
    console.log('Client :: ready');
    //mongo connection
        mongoose.connect('mongodb://localhost:27000/');
        var db = mongoose.connection;
        db.on('error', console.error.bind(console, 'connection error:'));
        db.once('open', function() {
            console.log("database connection established");
            var users = db.collection('user');
            var getallUsers = function (date, callback){
                users.find({}).toArray(function(err,data){
                    callback(data);
                })
            };
            getallUsers(null, function (data){
                console.log('data :'+  data);
            });
        });
    //end of mongo connection
}).connect({
    host: '**.**.**.**.**',
    port: 22,
    username: 'ec2-user',
    privateKey: key
});

E o código do túnel-ssh

var config = {
    dstPort: 27000,
    user: 'ec2-user',
    host: '**.**.**.**.**',
    privateKey: key
};

var server = tunnel(config, function (error, server) {
    if(error){
        console.log("SSH connection error: " + error);
    }
    console.log('database connection initalizing');
    mongoose.connect('mongodb://localhost:27000/');

    var db = mongoose.connection;

    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function() {

        console.log("database connection established");

        var users = db.collection('user');
        var getallUsers = function (date, callback){
            users.find({}).toArray(function(err,data){
                callback(data);
            })
        };
        getallUsers(null, function (data){
            console.log(data);
        });

    });
});

Não tenho certeza se deve usar a seqüência de conexão regular do MongoDB após estabelecer o encapsulamento ou referir-se ao banco de dados como host local, como
mongodb: // localhost: portnumber.
ou
mongodb: //databasepath.subpath.mongodbdns.com: 27000

Localhost me dá um erro de permissão negada, o último me dá um tempo limite

questionAnswers(2)

yourAnswerToTheQuestion