一、JSch是Java Secure Channel的缩写。JSch是一个SSH2的纯Java实现。它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成它的功能到你自己的应用程序。

  本文只介绍如何使用JSch实现的SFTP功能。
  SFTP是Secure File Transfer Protocol的缩写,安全文件传送协议。可以为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,所以,使用SFTP是非常安全的。但是,由于这种传输方式使用了加密/解密技术,所以传输效率比普通的FTP要低得多,如果您对网络安全性要求更高时,可以使用SFTP代替FTP。
  二、需要的依赖包pom.xml
        <dependency>
<groupId>jsch</groupId>
<artifactId>jsch</artifactId>
<version>0.1.8</version>
</dependency>

  三、sftp的访问,以及实现方式

import com.jcraft.jsch.ChannelSftp;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.Session; import java.io.*;
import java.util.Properties; public class SftpFile { public static void main(String[] args) throws Exception { //声明JSCH对象
JSch jSch = new JSch();
//获取一个Linux会话
Session session = jSch.getSession("root", "10.0.40.98", );
//设置登录密码
session.setPassword("密码");
//关闭key的检验
Properties sshConfig = new Properties();
sshConfig.put("StrictHostKeyChecking", "no");
session.setConfig(sshConfig);
//连接Linux
session.connect();
//通过sftp的方式连接
ChannelSftp channel = (ChannelSftp) session.openChannel("sftp");
channel.connect();
//上传文件
File file = new File("d:\\1.txt");
InputStream inputStream = new FileInputStream(file);
channel.put(inputStream, "/root/file/2.txt");
//下载文件
OutputStream out = new FileOutputStream("d:\\4.txt");
channel.get("/root/file/1.txt", out);
//关闭流
inputStream.close();
out.close();
}
}

  注意:这里是弄成sftp的方式,其他方式也可以通过这样的方式来实现。  

  四、Jsch中sftp提供的一些api

put():      文件上传
get(): 文件下载
cd(): 进入指定目录
ls(): 得到指定目录下的文件列表
rename(): 重命名指定文件或目录
rm(): 删除指定文件
mkdir(): 创建目录
rmdir(): 删除目录

最新文章

  1. HTML5笔记1——HTML5的发展史及标签的改变
  2. 给notepad++添加右键菜单
  3. outline使用方法,outline与border的区别:
  4. spring batch部分
  5. Refresh recovery area usage data after manually deleting files under recovery area
  6. 【练习】flushback基于时间的闪回查询
  7. java使用jacob将office转pdf
  8. 浅析 public static void main(String[] args)
  9. linux服务器命令
  10. h2database源码浅析:事务、两阶段提交
  11. Webbrowser控件execcommand参数详解
  12. for循环 + setTimeout 结合的烂大街的面试题
  13. (实用篇)使用PHP生成PDF文档
  14. Go的context的问题
  15. TypeScript 错误property does not exist on type Object
  16. 51Nod 1298 圆与三角形(计算几何)
  17. DDoS攻击与防御(2)
  18. 11:vue-cli脚手架
  19. Linux(CentOS7.0)下 C访问MySQL (转)
  20. Android Studio 老提示adb问题

热门文章

  1. 分布式缓存--系列1 -- Hash环/一致性Hash原理
  2. OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
  3. UOJ #185【ZJOI2016】 小星星
  4. 设计点滴&amp;css效果点滴
  5. m_Orchestrate learning system---二十八、字體圖標iconfont到底是什麼
  6. 递归--练习10--noi1696逆波兰表达式
  7. c#只读字段和常量的区别,以及静态构造函数的使用 .
  8. cdq分治的小结
  9. 在Jsp中调用静态资源,路径配置问题,jsp获取路径的一些方法
  10. selenium对应三大浏览器(谷歌、火狐、IE)驱动安装