【问题标题】:Java PuTTY open saved sessionJava PuTTY 打开保存的会话
【发布时间】:2016-04-11 20:10:57
【问题描述】:

Plink 新手,我正在尝试使用 Plink 从 putty 加载保存的会话,我的会话称为 "saved session1",当我加载并运行会话并远程连接到服务器时PuTTY 首先要求我输入“登录为:”,然后输入 “密码:”。给定我的 "saved session1",用户名 "username1" 和密码 "password1"。我的代码基于之前在

的 stackoverflow 帖子

Java and putty - send commands [duplicate]

我有代码,但不确定如何格式化命令,假设 PuTTY 和 Plink 与我的 java 代码位于同一目录中,并给出有关服务器的所有信息、我的会话和登录详细信息,我该如何使用r.exe(); 命令简单地登录到服务器并打印主目录内容?

import java.io.*;
import java.net.*;

public class javaputty{
    public static void main(String[] args){

        InputStream std; 
        OutputStream out; 
        InputStream err; 

        try {
            String command = "plink -load saved session1";
            String username = "username1";
            String password = "password1";

            Runtime r = Runtime.getRuntime ();
            Process p = r.exec (command);

            std = p.getInputStream ();
            out = p.getOutputStream ();
            err = p.getErrorStream ();

            out.write ("ls -l\n".getBytes ());
            out.flush ();

            Thread.sleep (10000);

            int value = 0;
            if (std.available () > 0) {
                System.out.println ("STD:");
                value = std.read ();
                System.out.print ((char) value);

                while (std.available () > 0) {
                    value = std.read ();
                    System.out.print ((char) value);
                }
            }

            if (err.available () > 0) {
                System.out.println ("ERR:");
                value = err.read ();
                System.out.print ((char) value);

                while (err.available () > 0) {
                    value = err.read ();
                    System.out.print ((char) value);
                }
            }

            p.destroy ();
        }
        catch (Exception e) {
            e.printStackTrace ();
        }
    }
}

【问题讨论】:

    标签: java putty plink


    【解决方案1】:

    如果您存储的会话名称包含空格,则必须将名称用双引号括起来(最好总是这样做):

    String command = "plink -load \"saved session1\"";
    

    尽管您最好使用原生 Java SSH 库(例如 JSch),而不是尝试自动化 PuTTY/Plink。

    Sending commands to remote server through ssh by Java with JSch

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 2019-06-29
      • 1970-01-01
      • 2010-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多