热门IT资讯网

jcsh中SFTP

发表于:2024-11-26 作者:热门IT资讯网编辑
编辑最后更新 2024年11月26日,com.jcraftjsch0.1.54//利用ChannelSftp 类中的方法 可以实现SFTP操作private static Logger log = Logger.getLogger(SFT


com.jcraft
jsch
0.1.54

//利用ChannelSftp 类中的方法 可以实现SFTP操作private static Logger log = Logger.getLogger(SFTPUtils.class);    private String host;//服务器连接ip    private String username;//用户名    private String password;//密码    private int port = 22;//端口号    private ChannelSftp sftp = null;    private Session sshSession = null;    public SFTPUtils(){}    public SFTPUtils(String host, int port, String username, String password)    {        this.host = host;        this.username = username;        this.password = password;        this.port = port;    }    public SFTPUtils(String host, String username, String password)    {        this.host = host;        this.username = username;        this.password = password;    }    /**     * 通过SFTP连接服务器     */    public void connect()    {        try        {            JSch jsch = new JSch();            jsch.getSession(username, host, port);            sshSession = jsch.getSession(username, host, port);            if (log.isInfoEnabled())            {                log.info("Session created.");            }            sshSession.setPassword(password);            Properties sshConfig = new Properties();            sshConfig.put("StrictHostKeyChecking", "no");            sshSession.setConfig(sshConfig);            sshSession.connect();            if (log.isInfoEnabled())            {                log.info("Session connected.");            }            Channel channel = sshSession.openChannel("sftp");            channel.connect();            if (log.isInfoEnabled())            {                log.info("Opening Channel.");            }            sftp = (ChannelSftp) channel;            if (log.isInfoEnabled())            {                log.info("Connected to " + host + ".");            }        }        catch (Exception e)        {            e.printStackTrace();        }    }    /**     * 关闭连接     */    public void disconnect()    {        if (this.sftp != null)        {            if (this.sftp.isConnected())            {                this.sftp.disconnect();                if (log.isInfoEnabled())                {                    log.info("sftp is closed already");                }            }        }        if (this.sshSession != null)        {            if (this.sshSession.isConnected())            {                this.sshSession.disconnect();                if (log.isInfoEnabled())                {                    log.info("sshSession is closed already");                }            }        }    }
0