node-s sh, node.js проблема при зацикливании нескольких серверов - PullRequest
0 голосов
/ 03 апреля 2020

Моя проблема:

node_ssh = require('node-ssh')
ssh = new node_ssh()

const verteiler = ['domain1','domain2','domain3'];


for(var i = 0; i < verteiler.length; i++){

const verbindung = ssh.connect({
    host: verteiler[i],
    username: 'User',
    port: 22,
    password: '*****',
    tryKeyboard: true,

    onKeyboardInteractive: (name, instructions, instructionsLang, prompts, finish) => {
        if (prompts.length > 0 && prompts[0].prompt.toLowerCase().includes('password')) {
          finish([password])
        }
    }
})
.then(function() {

        ssh.execCommand('some commands', { cwd:'' })

        .then(function(result) {
            var result = result.stdout.split(' ')
            console.log(result[result.length-1])
            ssh.dispose()


        })

})
}

Этот код создает несколько ошибок:

Вот первая:

UnhandledPromiseRejectionWarning: Ошибка: ошибка протокола: ожидается тип пакета 50, получено 90

После этого всегда возникает одна и та же ошибка для каждой попытки подключения:

UnhandledPromiseRejectionWarning: необработанное отклонение обещания. Эта ошибка возникла либо из-за того, что внутри asyn c -функции не было блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch (). Чтобы завершить процесс узла при отклонении необработанного обещания, используйте флаг CLI --unhandled-rejections=strict

Я пытаюсь решить свою проблему самостоятельно с помощью Google, но мне это не удалось. Буду признателен за помощь и объяснение, чтобы узнать больше.

...