zoukankan      html  css  js  c++  java
  • java使用SSH连接Linux系统

    SSH连接linux系统使我们在开发项目中常用到的,现在留下来,做个记录

     1 package com.log;
     2 
     3 import java.io.BufferedReader;
     4 import java.io.IOException;
     5 import java.io.InputStream;
     6 import java.io.InputStreamReader;
     7 import java.io.PrintWriter;
     8 
     9 import ch.ethz.ssh2.Connection;
    10 import ch.ethz.ssh2.Session;
    11 import ch.ethz.ssh2.StreamGobbler;
    12 
    13 public class Test8 {
    14     
    15     /**
    16      * 连接linux系统
    17      * @param args
    18      */
    19     public static void main(String[] args) {
    20         try {
    21             Connection conn = new Connection("192.168.81.129");
    22             conn.connect();
    23             boolean isAuthenticated = conn.authenticateWithPassword("root",
    24             "123456");
    25             if (isAuthenticated == false) {
    26             throw new IOException("Authentication failed");
    27             }
    28             Session sess = conn.openSession();
    29             sess.requestPTY("bash");
    30             sess.startShell();
    31             InputStream stdout = new StreamGobbler(sess.getStdout());
    32             InputStream stderr = new StreamGobbler(sess.getStderr());
    33             BufferedReader stdoutReader = new BufferedReader(
    34             new InputStreamReader(stdout));
    35             BufferedReader stderrReader = new BufferedReader(
    36             new InputStreamReader(stderr));
    37             BufferedReader inputReader = new BufferedReader(
    38             new InputStreamReader(System.in));
    39             PrintWriter out = new PrintWriter(sess.getStdin());
    40             String temp = "";
    41             while (!temp.equals("exit")) {
    42             System.out.print("[root@vmone ~]#");
    43             temp = inputReader.readLine();
    44             out.println(temp);
    45             out.flush();
    46             String line = null;
    47             while ((line = stdoutReader.readLine()) != null) {
    48             if (line.length() == 0) {// line等于null从来不会发生,导致程序卡在这里
    49             continue;
    50             } else{
    51             System.out.println(line);
    52             }
    53             }
    54             System.out.println("Here is the output from stderr:");
    55             while (true) {
    56             line = stderrReader.readLine();
    57             if (line == null)
    58             break;
    59             System.out.println(line);
    60             }
    61             }
    62             System.out.println("ExitCode: " + sess.getExitStatus());
    63             sess.close();
    64             conn.close();
    65             System.out.println("close connection");
    66             } catch (IOException e) {
    67             e.printStackTrace(System.err);
    68             System.exit(2);
    69             }
    70     }
    71     
    72 
    73 }

    下面截图是次程序运行结果

  • 相关阅读:
    OPC客户端的进程安全初始化
    [精华] Oracle安装(linux)总结一下[转]
    Linux防火墙iptables的设置与启动[转]
    Linux Server 5.5安装SVN+Apache服务[转]
    Red hat Linux Enterprise 5.4 Edtion 学习笔记[二]
    RedHat Linux 5企业版开启VNCSERVER远程桌面功能[转]
    Linux服务配置:Vsftp的基本配置[转]
    Linux查看和剔除当前登录用户
    Ubuntu10.04的中文问题汇集与解决[转]
    Linux下扩展swap分区的方法
  • 原文地址:https://www.cnblogs.com/javallh/p/9076850.html
Copyright © 2011-2022 走看看