Итак, моя структура выглядит следующим образом:
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 выдает ту же ошибку.