日期:2014-05-16  浏览次数:20571 次

java应用程序远程登录linux并执行其命令
http://www.ganymed.ethz.ch/ssh2/
在这个网址下载一个调用ssh和scp命令的jar包

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 SSH

{

	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);

		}

	}

}