Я пытался подключиться к удаленному серверу mongoDB через SSH и выполнил следующие настройки
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, но ошибка не исчезнет. Кевин Ли предлагает аналогичный подход.этот вопрос используется в качестве примера