您的位置:首页 > 其它

SSHconnection

2015-09-11 13:16 302 查看
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

import org.omg.CORBA.TIMEOUT;

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

public class SSHConnection {
public static Connection connection(){
Connection conn = null;
try {
conn = new Connection("192.168.0.148",22);
conn.connect();
boolean flag = conn.authenticateWithPassword("hdcc", "waygoing");
if(flag){
return conn;
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
//获得session 来操作命令
public static Session getSession(Connection conn){
Session sess = null;
if(conn!=null){
try {
sess = conn.openSession();
return sess;
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
//关闭session
public static void closeSesssion(Session sess){
if(sess!=null){
sess.close();
}
}
//关闭连接
public static void closeConn(Connection conn,Session sess){
if(sess!=null){
sess.close();
}else if(conn!=null){
conn.close();
}
}

public static void main(String[] args) {
Connection conn = SSHConnection.connection();
if(conn!=null){
Session sess = SSHConnection.getSession(conn);
try {
sess.execCommand("cd /home/hdcc/webservice/apache-tomcat-6.0.41/webapps;ls");
sess.waitForCondition(ChannelCondition.EXIT_STATUS, 1000);
System.out.println(sess.getExitStatus());
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
String count;
while ((count = br.readLine())!=null) {
System.out.println(count);
}
SSHConnection.closeConn(conn, sess);
System.out.println(sess.getExitStatus());

} catch (IOException e) {
e.printStackTrace();
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: