public static String runCommand(String hostname, String username, String password,String cmd){
Connection conn = new Connection(hostname);
Session sess = null;
try
{
conn.connect();
boolean isAuthenticated = conn.authenticateWithPassword(username, password);
if (isAuthenticated == false){
throw new IOException("Authentication failed.");}
sess = conn.openSession();
//sess.execCommand("uname -a && date && uptime && who");
sess.execCommand(cmd);
InputStream stdout = sess.getStdout() ;
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
StringBuilder sb = new StringBuilder();
while (true)
{
String line = br.readLine();
if (line == null)
break;
sb.append(line+" ");
}
// System.out.println("ExitCode: " + sess.getExitStatus());
System.out.println(sb.toString());
return sb.toString();
}catch (IOException e){
e.printStackTrace(System.err);
return "0";
}finally{
sess.close();
conn.close();
}
// return "1";
}
例:runCommand("100.100.2.200","root","root","ls")
pom
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>build210</version>
</dependency>