我正在构建一个需要为用户打开新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会知道将它发送到远程服务器?
答案 0 :(得分:1)
PuTTY是一个GUI应用程序。不要试图自动化它。
请改用Plink。它是PuTTY软件包的控制台应用程序。
它支持输入流,您尝试使用的代码。它还允许支持在命令行上指定命令:
String command = plinkPath + " -ssh user@localhost " + secondCommand;
虽然这不是正确的方法。使用一些本机Java SSH库,如JSch,而不是使用外部应用程序。
答案 1 :(得分:0)
您可以尝试为命令添加“-m”和带有secondCommand的文件。 有关enter link description here
的更多信息,请参阅