package com.idc.remote;
import java.util.Properties;
import com.jcraft.jsch.ChannelExec;
import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
import com.jcraft.jsch.Session;
import com.jcraft.jsch.SftpException;
public class SshUtil {
private ChannelSftp channelSftp;
private ChannelExec channelExec;
private Session session=null;
private int timeout=60000;
public SshUtil(SshConfiguration conf) throws JSchException{
System.out.println("try connect to "+conf.getHost()+",username: "+conf.getUsername()+",password: "+conf.getPassword()+",port: "+conf.getPort());
JSch jSch=new JSch(); //创建JSch对象
session=jSch.getSession(conf.getUsername(), conf.getHost(), conf.getPort());//根据用户名,主机ip和端口获取一个Session对象
session.setPassword(conf.getPassword()); //设置密码
Properties config=new Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);//为Session对象设置properties
session.setTimeout(timeout);//设置超时
session.connect();//通过Session建立连接
}
public void download(String src,String dst) throws JSchException, SftpException{
//src linux服务器文件地址,dst 本地存放地址
channelSftp=(ChannelSftp) session.openChannel("sftp");
channelSftp.connect();
channelSftp.get(src, dst);
channelSftp.quit();
}
public void close(){
session.disconnect();
}
public static void main(String[] args){
SshConfiguration configuration=new SshConfiguration();
configuration.setHost("192.168.1.109"); //远程主机ip
configuration.setUsername("root");//登录远程主机用户名
configuration.setPassword("12345");//登录远程主机密码
configuration.setPort(22);
try{
SshUtil sshUtil=new SshUtil(configuration);
sshUtil.download("/home/bigdata/apk_save_dir/2015-04-14/www.7xz.com/0119EC5A1EF19C8BB1D5F30ED05D0A6D.apk","0119EC5A1EF19C8BB1D5F30ED05D0A6D.apk");
sshUtil.close();
}catch(Exception e){
e.printStackTrace();
}
}
}