java应用程序远程登录linux并执行其命令(ssh jar包)

时间:2024-08-01 18:07:26

http://www.ganymed.ethz.ch/ssh2/在这个网址下载一个调用ssh和scp命令的jar包。

然后,就可以写程序了。将上面的jar包导入MyEclipse,下面是一个类的实例代码。

package hh;

import java.io.BufferedReader; 
    import java.io.IOException; 
    import java.io.InputStream;
    import java.io.InputStreamReader;

import ch.ethz.ssh2.Connection; 
    import ch.ethz.ssh2.Session; 
    import ch.ethz.ssh2.StreamGobbler;

public class Basic

{

public static void main(String[] args)

{

String hostname = "222.177.211.9";//要登陆目标主机

String username = "boss";//登陆用的用户名

String password = "qwer@1234"   //登陆用到的密码

try

{

/* Create a connection instance */

Connection conn = new Connection(hostname);

/* Now connect */

conn.connect();

/* Authenticate */

boolean isAuthenticated = conn.authenticateWithPassword(username, password);

if (isAuthenticated == false)

throw new IOException("Authentication failed.");

/* Create a session */

Session sess = conn.openSession();

//sess.execCommand("uname -a && date && uptime && who");

sess.execCommand("ps aux ");

System.out.println("Here is some information about the remote host:");

InputStream stdout = new StreamGobbler(sess.getStdout());

BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true)

{

String line = br.readLine();

if (line == null)

break;

System.out.println(line);

}

/* Show exit status, if available (otherwise "null") */

System.out.println("ExitCode: " + sess.getExitStatus());

/* Close this session */

sess.close();

/* Close the connection */

conn.close();

}

catch (IOException e)

{

e.printStackTrace(System.err); System.exit(2);

}

}

}

在控制台我们将看到输出结果。