Ошибка: время ожидания рукопожатия истекло

#scp #handshake

#scp #рукопожатие

Вопрос:

Я использую scp2 для копирования файла в TargetPath. конфигурация содержит хост, имя пользователя, приватный ключ, путь и порт.

 const client = require('scp2');

export function scpAsync(config, targetPath) {
  return new Promise((resolve, reject) => {
    client.scp(config, targetPath, err => {
      if (!err){
        resolve();
      } else {
        const errorMessage = err;
        reject(errorMessage);
      }
    });
  });
}
  

При этом я получаю сообщение об ошибке:

 Error: Timed out while waiting for handshake 
  

Я пытался передать также

 promptForPass: false 
  

но это ничего не изменило. Кроме того, я использовал режим отладки, который сообщал мне, что я подключен к серверу, и я установил более высокое значение setTimeout, но затем ошибка просто появляется позже. Я проверял документацию scp2 и их GitHub. Я использую функцию, как описано там (https://www.npmjs.com/package/scp2 ) и что касается ошибки, они могли бы исправить ее с помощью более высокого setTimeout (https://github.com/spmjs/node-scp2/issues/107 ). Я пробовал с локальным FTP-сервером, ngrok и ftp на экземпляре ec2. Все с той же проблемой.

Я был бы рад получить помощь. Я задал этот вопрос также суперпользователю, но не получил ответа:https://superuser.com/questions/1576964/error-timed-out-while-waiting-for-handshake

Комментарии:

1. Отсутствие ответа не означает, что вы можете просто свободно перепостить… но, вероятно, SO — это правильное местоположение, поскольку вы используете SCP через API. Однако, я думаю, вам нужно было бы привести несколько примеров сбоев общедоступных FTP-серверов, поскольку читатели не могут иным образом доказать, доступны ли ваши собственные серверы. Правильно ли реагируют эти серверы, если вы вызываете SCP в интерактивном режиме из командной строки с теми же конфигурационными и целевыми путями?