0

连接到 linux box 的 java 代码是什么?手动我通过 Putty 进行连接,所以我的问题是如何集成到 java 中并连接 Linux 盒或者有任何其他方式来连接它。

我试过这段代码它没有用。请

import java.io.InputStream;
import java.io.OutputStream;

public class Test {

  public static void main( String[] args ) throws Exception {

      String[] cm = {
         "ssh= C:\\users\\...\\putty.exe",
          "root@000.00.1.00" ,
          "df -h"
      };
      Process p = Runtime.getRuntime().exec( cm );
      InputStream in = p.getInputStream();
      OutputStream out = p.getOutputStream();
      out.write( "password".getBytes() );
  }
}
4

1 回答 1

1

用于 Java 的 SSH 库

您可能希望为此使用 SSH 库。请参阅上面的问题以获取答案。

手动调用 Putty 太复杂了,而且您的代码并没有按照您的想法执行。首先,您的子进程的标准输入不会出现在 Putty 窗口中。其次,任何时候从控制台读取密码时,它都不会(通常)直接从标准输入读取。

但是你为什么要这样做?我可以看到两个可能的原因

您想让 Java 程序以编程方式启动 Putty 吗?

在这种情况下,您启动子进程的想法会起作用,但是您需要在 Putty 和 Linux 机器之间设置一个 ssh 密钥,以避免每次手动输入密码。

您想打开与 Linux 机器的连接并通过它运行一些命令吗?

您可能想先熟悉 SSH 以及它可以做什么。您可能可以在服务器上设置一个简单的 shell 脚本,使用 Java ssh 客户端登录并通过此连接运行它。

我试过这段代码它没有用。

另外,欢迎来到 StackOverflow。在不提供有关问题的详细信息的情况下说“它不起作用”并不能帮助我们帮助您。您看到了哪些错误消息?出了什么问题,您期望发生什么?

于 2013-10-17T23:27:46.690 回答