使用Jsch连接到远程Windows机器的问题

时间:2013-06-28 12:56:42

标签: java jsch

我目前正在制作一个Java应用程序,它将执行远程Windows机器的命令(来自命令提示符)。

为了开发这个,我尝试了以下:

  1. 使用Jsch库,应用程序在连接到 Unix机器时运行良好,我能够使用'prstat -a'命令获取进程列表,但是当我尝试使用 Windows机器,它给了我 ConnectException (超时)

    private final static String HOSTNAME = "SOMECOMPUTERNAME.XXX.XXX.XXX.COM";//
    private final static String USERNAME = "SOMEUSERNAME";
    private final static String PASSWORD = "SOMEPASSWORD";
    private final static int PORT = 22;
    
    public static void main(String[] args) {
        JSch jscc = new JSch();
        try {
            Session session = jscc.getSession(USERNAME, HOSTNAME, PORT);
            session.setPassword(PASSWORD);
            Properties localProperties = new Properties();
            localProperties.put("StrictHostKeyChecking", "no");
            session.setConfig(localProperties);
    
            session.connect(60000);
            System.out.println("Session connected");
    
        } catch (JSchException e) {
            e.printStackTrace();
        }
    }
    
  2. 目标机器信息:

    • Windows x64工作站
    • 安装了最新版本的Java
    • 不使用任何加密

    请指导一下,如果没有您推荐的方法,可以使用Jsch库吗?

    以下事项你可以假设:

    • 我不希望目标机器中有任何代码。所以一个Java应用程序驻留在我的工作站中,只是执行一些简单的窗口命令,比如dir或在目标窗口机器中启动applicationName
    • 我有用户名和相应的密码
    • 我没有ipaddress,只是一个完整的计算机名称格式,如上面的代码所示(HOSTNAME)

    欢迎任何建议。

    此致

    ICR

1 个答案:

答案 0 :(得分:0)

默认情况下,Windows没有安装SSH。您将需要一个用于Windows的SSH客户端。

我更喜欢OpenSSH ....它是免费的,而且效果很好