SSH-команда из Scala-программы с чистым Scala API или Ammonite API
Я хотел бы выполнить команду SSH, а затем выполнить некоторую команду на удаленном компьютере изнутри Scala. И Scala API, и Scala Ammonite предоставляют способ выполнения системных команд. Однако у меня проблемы с SSH. Как запустить команду ssh, а затем запустить команду и получить результат обратно из моей программы scala?
EDIT1
нашел следующее в этом посте Проблемы с использованием Scala для удаленной выдачи команд через SSH
msgstr "ssh user@Main.local 'mkdir Desktop/test'"!
Интересно, как это можно сделать с помощью Scala Amonite API. Я не смог найти способ.
2 ответа
Пока что нашел то, что я хотел с помощью Scala API: http://www.scala-lang.org/api/2.12.1/scala/sys/process/ProcessBuilder.html например
import scala.sys.process.ProcessBuilder import scala.sys.process._ import scala.sys.process "ssh 192.168.0.103 ls IdeaProjects" lineStream
Он работает как брелок, выполненный с одной моей машины на другую, он работал безупречно. Это требует предварительной настройки ssh без фразы. Я использую то же самое на обеих машинах, я должен был бы также указать пользователя
Если кто-то может дополнить ответ и объяснить, как это сделать с помощью API Ammonite, это было бы здорово.
Вы можете использовать Cable для выполнения задач SSH,Cable поддерживает конфигурацию ~/.ssh, а также глобальную конфигурацию клиента ssh. Кабель также поддерживает переходы через сети, переходы через узлы-бастионы. Кабель позволяет создавать задачи внутри хоста и на множестве разных хостов.