Java使用SFTP协议上传、下载文件

http://blog.csdn.net/haidage/article/details/6859716

在自己尝试之后发现以上内容里有坑。

1、关闭连接的时候,必须要sftp.getSession().disconnect();sftp.quit();sftp.disconnect();否则session回话一直都在,如果使用

main()函数测试的话,进程一直都不关闭。

2、上面的文章里,没有考虑到使用证书加密的方式进行访问,

(1) 在变量声明中加一个证书文件路径变量。

private String  privateKeyPath = "/home/user/.ssh/id_rsa";

(2) 在jsch对象创建之后,引入证书文件。需要注意的是,该路径是运行本程序的服务器的本地路径,不是远端访问对象的路径。

if(privateKeyPath != null && !privateKeyPath.isEmpty()){

    jsch.addIdentity(privateKeyPath);

}

 3、关于秘钥部分,可以参考下面的文章,秘钥分带密码的和不带密码的。

http://blog.csdn.net/fyqcdbdx/article/details/23863639

4、关于删除文件

sftp.cd(directory);

sftp.rm(fileName);

参考文档:http://blog.csdn.net/u011271894/article/details/48710779

原文地址:https://www.cnblogs.com/mabaishui/p/6857252.html