前期对接了一个经过ssh免密登陆的需求,是基于原先密码登陆sftp服务器的代码上进行改造,实际上代码改动量很是少,趁此机会对本身整理的资料作一下总结。java
1. 什么是SFTPlinux
SFTP是一个安全文件传送协议,能够为传输文件提供一种安全的加密方法。SFTP 为 SSH的一部份,是一种传输文件到服务器的安全方式。SFTP是使用加密传输认证信息和传输的数据,因此,使用SFTP是很是安全的。可是,因为这种传输方式使用了加密/解密技术,因此传输效率比普通的FTP要低得多,若是您对网络安全性要求更高时,可使用SFTP代替FTP。api
2. 什么是Jsch以及它的做用安全
Jsch是一个纯粹的用java实现SSH功能的java library。若是要知道Jsch的功能需先了解一下SSH。SSH是一个安全协议,用来在不一样系统或者服务器之间进行安全链接,在链接和传送数据的过程当中会进行加密。SSH通常是基于客户端的或者Linux命令行,好比window同过OpenSSH、putty等客户端的工具,在linux上能够经过ssh username@host命令进行链接。可是若是在Java中如何实现SSH呢?这时候即是经过JSCH来实现此的功能。服务器
3. 网络
Jsch提供了四种认证机制:ssh
TODO工具