私は2つのモンゴDBを持っています。私のdevの環境、私のRobomongoセットアップからここに見られるように生産のための1のための一つ:Node.js SSHモンゴースを使ったMongoDBへのトンネル
生産DBはここに見られるようにSSHが(詳細は明らかに変更されました)私のデジタルオーシャン仮想サーバーにトンネルです。接続するとき、この設定は正常に動作します/私の生産のウェブサイトから:
私は今、さまざまな/関連プロジェクトに取り組んで、私の生産に私のローカルマシンを接続する必要があるのです DB、だから私はそれが完了するためにtunnel-sshのような何かを使う必要があると思った。私はthis answerを例にしていますが、私はError: (SSH) Channel open failure: open failed
を取得しています。または、私のDev dbに接続しています(27017を私のdstHost/dstPort/localPortとして使用しています)。私はこの間違ったことを考えなければならない、または私は私の構成に馬鹿になっている。私は明らかにMongo/Mongooseの初心者ですから、どちらも可能です。何かアドバイス?
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);
});
});
ありがとうございます!
まあ、少なくとも進歩。これらの3つをコメントアウトすると、「エラー:(SSH)チャンネルオープン失敗:接続が拒否されました」というメッセージが表示されます。あなたに何かを意味する?オフ私はGoogleのマシンに行く... – jeremytripp
あなたはあなたのスクリーンショットに表示するのと同じポートを使用していない。それに合わせてそれに合わせて変更してみてください。また、接続文字列のポートも変更する必要があります。 – mscdex
これはチケットです。今朝あなたのコメントを読んだあと、5秒後に痛みを伴う明白で固定された。本当にありがとう! – jeremytripp