您的位置:首页 > 运维架构 > Linux

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

2014-05-19 18:59 806 查看
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);

}

}

}

在控制台我们将看到输出结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: