一、密钥(工具:puttygen.exe)
1. 点击puttygen.exe, 点击Generate, 鼠标在空白处来回换动,有助于快速生成密钥。
2. 密钥生成后,可以为密钥设置密码key passphrase,点击save private key, 保存客户端私钥。 (必须设置私有密钥的密码)
3. 不要点击save public key, 手动复制public key的内容到.txt文件保存(其他任何文件类型皆可),并上传到服务器端。(放置在Authentication tab页中设置的目录下面,并且公有密钥的名称必须与用户名一致)
二、搭建sftp服务器(freesshd)
1、从FREESSHD官方网站下载最新的软件版本,下载地址是http://www.freesshd.com/?ctt=download
2、双击刚刚下载的freeSSHd.exe进行安装,一路默认就可以了。
3、设置
- Users页面
第一种是windows系统账户登录
第二种是自定义用户名密码登录
Public key是公有密钥认证方式,无须输入密码,但需要生成公有密钥
- SSH页面:地址选本地地址
- sftp 页面:选择服务端默认路径
- Authentication页面
文件选项为目录公钥文件夹位置(将用户名命名的公钥放置在该文件夹下)
两个都选择allowed(即两种方式都支持登录)
freesshd支持两种方式的认证,password和public key,你可以使用其中的任意一种,也可以要求客户端同时进行两种认证,也就是说,如果两个都设置为required,客户端要想连入服务器,得同时要有密码和public key。都设为allowed,任意一种认证都可以进入服务器。第一种认证简单,只要在客户端输入用户名和密码就可以,第二种就需要一对密钥了(公钥和私钥,私钥客户端持有,公钥要放到服务器上,图中的public key folder就是存放各个客户端私钥对应的公钥的).
- server status 页面:run ssh servers
设置完毕后重启服务既可生效
三、搭建sftp客户端(filezilla或putty )
打开[文件] -> [站点管理器],出现一下界面,并按照要求填写。
普通用户名密码登录:
密钥登录:
四、 java实现sftp客户端
JSch是一个SSH2的纯Java实现(相关包jsch-0.1.54.jar),sftp是ssh的一部分
五、jar包
需要替换jre下的jar包( jre\lib\security(更新US_export_policy.jar和local_policy.jar))
参考文档:http://blog.csdn.net/derek_zhang_/article/details/8486251