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. Кабель также поддерживает переходы через сети, переходы через узлы-бастионы. Кабель позволяет создавать задачи внутри хоста и на множестве разных хостов.

Другие вопросы по тегам