Java - 打开 SSH 客户端并发送命令

Java - Open SSH client and send command

我正在构建一个应用程序,需要为用户打开一个新的 SSH 连接,然后自动发送一个命令。 该应用程序需要在 Windows 上 运行,我考虑过使用 putty 到 SSH 客户端,然后发送命令,但命令没有发送到 putty。 有人知道我该如何实现吗?

这是我的代码:

String command = puttyPath + " -ssh user@localhost"
process =  Runtime.getRuntime().exec(command);
OutputStream out = process.getOutputStream();
Writer writer = new OutputStreamWriter(out);
writer.write(secondCommand);
writer.flush();
process.waitFor(600_000, TimeUnit.SECONDS);

有没有可能只向 putty 发送一个命令,putty 就会知道将它发送到远程服务器?

PuTTY 是一个 GUI 应用程序。不要尝试自动化它。

改用Plink。它是 PuTTY 包中的控制台应用程序。

它支持输入流,您的代码尝试使用的内容。它还允许支持在其命令行上指定命令:

String command = plinkPath + " -ssh user@localhost " + secondCommand;

尽管那也不是正确的方法。使用一些本机 Java SSH 库,例如 JSch,而不是使用外部应用程序。

参见JSch Exec.java example

您可以尝试为您的命令添加“-m”和带有 secondCommand 的文件。 有关更多信息,请阅读 enter link description here