Назад | Перейти на главную страницу

Linux SSH действует как Plink.exe с тем же скриптом

Я надеюсь, что смогу объяснить это правильно, и я надеюсь, что поместил это в соответствующий форум и категорию.

Моя цель - переместить сервер XAMPP на сервер LAMP. Мы будем называть эти серверы «Xray» и «Lima» соответственно. В настоящее время Server Xray имеет процесс, в котором его PHP вызывает и успешно запускает исполняемый файл plink.exe (см. PuTTY cli) в сочетании с файлом .sh на другом сервере (назовите его Server «Echo»). Полная команда, которую выполняет PHP:

C:\path\to\plink.exe" -batch -pw echosPassword username@host.echo.com <"C:\path\to\script.sh" > "C:\path\to\results.dat"

Это работает отлично и делает именно то, что нужно: запускает файл .sh и выводит полученные данные в файл .dat. Пытаясь перейти в Лиму, мы пытаемся заменить исходную команду Xray plink.exe на команду Lima ssh. Сценарий «запускается», но не выполняется должным образом. Соединение ssh, похоже, не может отправить часть содержимого из файла .sh в интерактивную подсказку другой программы на Echo. Мы попробовали несколько способов выполнить команду, в том числе:

cat script.sh | sshpass -p "echosPassword" ssh -t -o StrictHostKeyChecking=no username@host.echo.com

sshpass -p "echosPassword" ssh -t -o StrictHostKeyChecking=no username@host.echo.com < script.sh

Вот макет файла script.sh:

thirdPartyProgramExecutable
thirdPartyPassword
query 1
query 2
...
snip
...
thirdPartyExitCmd
exit

Появившееся на экране сообщение об ошибке указывает, что «thirdPartyPassword» не был отправлен в интерактивную программу. Это похоже на то, что соединение ssh видит интерактивное сообщение и решает нажать «Enter» вместо того, чтобы вводить «thirdPartyPassword», а затем «Enter». Таким образом, последующие запросы, предназначенные для сторонней программы, возвращаются оболочкой с ошибками, что запросы не распознаются как команды ... до выхода. Итак, похоже, что plink.exe Xray может отправить скрипт в Echo, а затем в стороннюю программу также в Echo. В этом и заключается вопрос этой статьи: как заставить Lima ssh отправлять запросы и комментарии так же, как это делает plink.exe от Xray?