使用纯 Scala API 或 Ammonite API 的 Scala 程序中的 SSH 命令

SSH command from within a Scala program with pure Scala API or Ammonite API

我想执行一个 SSH 命令,然后从 scala 中在远程机器上执行一些命令。 scala API 和 Scala Ammonite 都提供了执行系统命令的方法。但是我在使用 ssh 时遇到问题。我如何 运行 一个 ssh 命令,然后 运行 命令并从我的 scala 程序中取回结果?

编辑1

在 post Problems using scala to remotely issue commands via ssh

中找到了以下内容

"ssh user@Main.local 'mkdir Desktop/test'".!

我想知道如何使用 scala Amonite API 完成此操作。我一直找不到路

到目前为止,我已经找到了我想要的 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,那就太好了。

您可以使用 Cable 来完成您的 SSH 任务, Cable 支持 ~/.ssh 配置以及全局 ssh 客户端配置。 Cable还支持跳过网络、跳过堡垒主机。 Cable 允许在一个主机内和多个不同主机之间组合任务。