【问题标题】:Connect to a remote server mongoDB via ssh through mongoose in nodeJS using tunnel-ssh使用隧道 ssh 通过 nodeJS 中的 mongoose 通过 ssh 连接到远程服务器 mongoDB
【发布时间】:2019-11-19 16:31:59
【问题描述】:

我试图通过 SSH 连接到远程服务器 mongoDB 并按照提供的配置进行配置

import tunnel from 'tunnel-ssh';

const config = {
    username: 'username',
    Password: 'password',
    host: process.env.SSH_SERVER, //192.168.9.104
    port: 22,
    dstHost: 'localhost',
    dstPort: process.env.DESTINATION_PORT, //27017
    localHost: '127.0.0.1',
    localPort: 27018
};

这是我需要连接到远程服务器 192.168.9.104 的配置。因此选择特定的作为 SSH 主机。提供了相同的用户名和密码。连接如下。

class DB {
    initDB() {
        tunnel(config, (error, server) => {
            if (error) {
                console.log('SSH connection error: ' + error);
            }

            const url = 'mongodb://127.0.0.1:27018/myDBname';
            mongoose.connect(url, { useNewUrlParser: true });
            mongoose.plugin(toJson);
            mongoose.plugin(setProperties);

            var db = mongoose.connection;
            db.on('error', console.error.bind(console, 'DB connection error:'));
            db.once('open', function() {
                console.log('DB connection successful');
            });
        });
    }
}

但是当调用 db.init() 函数时会弹出以下错误

events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: All configured authentication methods failed

我无法弄清楚配置出错的地方。我尝试将 127.0.0.1 用于 dstHost。以及将 192.168.9.104 也作为 dstHost 但错误仍然存​​在。 kevin lee 提出了类似的方法。这里以question为例

【问题讨论】:

  • 您拥有Password 而不是password。你的实际代码中有这个错字吗?
  • npmjs.com/package/tunnel-ssh 的隧道 ssh 文档提到“密码”而不是密码。
  • “密码”键错误。它应该是带有小写字母的“密码”。感谢您的评论。

标签: node.js mongodb mongoose ssh ssh-tunnel


【解决方案1】:

文档出现错误,提示上述配置带有“密码”键,但它应该是“密码”,因此配置看起来像这样

const config = {
    username: 'username',
    password: 'password',
    host: process.env.SSH_SERVER, //192.168.9.104
    port: 22,
    dstHost: 'localhost',
    dstPort: process.env.DESTINATION_PORT, //27017
    localHost: '127.0.0.1',
    localPort: 27018
};

实施的其余部分已确定并经过测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-01-01
    • 2017-09-27
    • 2016-11-18
    • 2020-07-05
    • 2019-11-12
    • 2020-09-30
    • 2019-01-29
    • 2019-05-13
    相关资源
    最近更新 更多