S SH В соединении отказано при выполнении скрипта bash в Node.js - PullRequest
0 голосов
/ 27 апреля 2020

Итак, моя структура выглядит следующим образом:

main.js
folder1/
   jsFile1.js
folder2/
   jsFile2.js
   bashFile.sh

main.js требует jsFile1.js, который затем требует и запускает jsFile2.js. jsFile2.js затем, наконец, запускает bashFile.sh с использованием Shell JS и передает три аргумента.

shell.exec(`bash utils/sshAndCreate.sh ${ip} ${encryptedUser} ${encryptedPw}`);

bashFile. sh:

#!/bin/bash

# Variables
host=$1
user=$2
pw=$3

# Postdata
postdata="someUnfinishedStuff"

# Download the file to the server
ssh root@$host -o StrictHostKeyChecking=no wget http://myOtherServer/api --post-data $postdata -O bash.sh

Моя проблема заключается в том, что когда я вручную запускаю bashFile.sh, используя bash bashFile.sh parameter1 parameter2 parameter3, он работает просто отлично, как и ожидалось, но это не так. не работает, когда я запускаю main.js, который в конечном итоге также запускает скрипт. Я просто получаю

ssh: connect to host myServerIpHere port 22: Connection refused

Что также странно, я переместил часть shell.exec на jsFile1.js, и она работала несколько раз, но при повторной попытке мое соединение также получает отказ.

Примечание 1: Я никогда ранее не подключался к серверу, поэтому его нет в моем known_hosts.

Примечание 2: Child_process выдает ту же ошибку.

...