Jsch性能问题

来源:互联网 发布:java整型转换成字符串 编辑:程序博客网 时间:2024/06/10 17:05

Jsch是纯Java实现的SSH开源框架

可以用来执行shell命令,实现sftp上传

其中在使用中发现在session.connect时连接非常耗时,很慢

经研究,log调试发现是开启gssapi认证导致

因为本程序中只使用密码认证,所以关闭gssapi认证
实现程序运行时间从10秒减少到600ms

程序部分代码

protected Session getSession(String host,String user,String password){    JSch jsch = new JSch();    try {        session = jsch.getSession(user, host, 22);        session.setConfig("PreferredAuthentications","password");        session.setConfig("StrictHostKeyChecking","no");        session.setPassword(password);        session.connect(3000);   // making a connection with timeout.        if(session.isConnected()){            System.out.println("session connect success");        }else{            System.out.println("session connect fail");        }    } catch (JSchException e) {        e.printStackTrace();    }    return  session;}


log开启方法:

JSch jsch = new JSch();log = new com.jcraft.jsch.Logger() {    public boolean isEnabled(int i) {        //开启、关闭调试        return true;    }    public void log(int i, String s) {        //打印日志        System.out.println(s);    }};JSch.setLogger(log);


原创粉丝点击