У меня есть два Mongo DBs. Один мой Dev окружающей среды, одна для производства, как видно здесь из моей установки Robomongo:Node.js SSH Туннелирование в MongoDB с использованием Mongoose
Производство ДБ SSH туннелируется на мой виртуальный сервер Digital Ocean, как показано здесь (специфика была изменена, очевидно). Эта установка отлично работает при подключении к/с моего сайта производства:
Я сейчас работаю над другим/проектом, связанного и нужно подключить местной машины к моим производства DB, поэтому я предположил, что мне нужно будет использовать что-то вроде tunnel-ssh, чтобы это сделать. Я привел this answer в качестве примера, но я либо получаю Error: (SSH) Channel open failure: open failed
ИЛИ он подключается к моему Dev db (когда я использую 27017 как мой dstHost/dstPort/localPort). Должно быть, я думаю об этом неправильно, или я не знаю, как это сделать. Я, по общему признанию, тотальный монгольский/мангустский новичок, поэтому оба варианта одинаково возможны. Любой совет?
var fs = require("fs");
var mongoose = require('mongoose');
var tunnel = require('tunnel-ssh');
//===== db connection =====
var config = {
username:'my.username',
host:'my.ip.address',
agent : process.env.SSH_AUTH_SOCK,
privateKey:require('fs').readFileSync('/Users/myusername/.ssh/id_rsa'),
port:22,
dstHost:'mongodb://localhost:27000/mydbname',
dstPort:27000,
localHost:'127.0.0.1',
password:'mypassword',
localPort: 27000
};
var server = tunnel(config, function (error, server) {
if(error){
console.log("SSH connection error: " + error);
}
mongoose.connect('mongodb://localhost:27000/mydbname');
var db = mongoose.connection;
db.on('error', console.error.bind(console, 'DB connection error:'));
db.once('open', function() {
// we're connected!
console.log("DB connection successful");
// console.log(server);
});
});
Заранее благодарен!
Ну, прогресс как минимум. Комментируя эти три, теперь я получаю сообщение об ошибке «Ошибка: (SSH)): Connection отказал'. Что-нибудь для вас? Off Я перехожу к машине Google ... – jeremytripp
Вы не используете тот же порт, что и на скриншоте. Поэтому попробуйте изменить его, соответственно, чтобы соответствовать этому. Вам также потребуется изменить порт в строке подключения. – mscdex
Это билет. Болезненно очевидно и зафиксировано через 5 секунд после прочтения вашего комментария сегодня утром. Спасибо! – jeremytripp