一、密钥(工具:puttygen.exe)

1. 点击puttygen.exe, 点击Generate, 鼠标在空白处来回换动,有助于快速生成密钥。 

2. 密钥生成后,可以为密钥设置密码key passphrase,点击save private key, 保存客户端私钥。 (必须设置私有密钥的密码)

3. 不要点击save public key, 手动复制public key的内容到.txt文件保存(其他任何文件类型皆可),并上传到服务器端。(放置在Authentication tab页中设置的目录下面,并且公有密钥的名称必须与用户名一致) 

sftp公钥密钥是怎么连的 sftp生成公钥_客户端

二、搭建sftp服务器(freesshd)

1、从FREESSHD官方网站下载最新的软件版本,下载地址是http://www.freesshd.com/?ctt=download

2、双击刚刚下载的freeSSHd.exe进行安装,一路默认就可以了。

3、设置

  • Users页面

第一种是windows系统账户登录

第二种是自定义用户名密码登录

Public key是公有密钥认证方式,无须输入密码,但需要生成公有密钥

  • SSH页面:地址选本地地址

sftp公钥密钥是怎么连的 sftp生成公钥_java_02

  • sftp 页面:选择服务端默认路径
  • Authentication页面

文件选项为目录公钥文件夹位置(将用户名命名的公钥放置在该文件夹下)

两个都选择allowed(即两种方式都支持登录)

sftp公钥密钥是怎么连的 sftp生成公钥_客户端_03

freesshd支持两种方式的认证,password和public key,你可以使用其中的任意一种,也可以要求客户端同时进行两种认证,也就是说,如果两个都设置为required,客户端要想连入服务器,得同时要有密码和public key。都设为allowed,任意一种认证都可以进入服务器。第一种认证简单,只要在客户端输入用户名和密码就可以,第二种就需要一对密钥了(公钥和私钥,私钥客户端持有,公钥要放到服务器上,图中的public key folder就是存放各个客户端私钥对应的公钥的).

  • server status 页面:run ssh servers

设置完毕后重启服务既可生效

三、搭建sftp客户端(filezilla或putty )

      打开[文件] -> [站点管理器],出现一下界面,并按照要求填写。

   普通用户名密码登录:    

sftp公钥密钥是怎么连的 sftp生成公钥_sftp公钥密钥是怎么连的_04

 

密钥登录:

sftp公钥密钥是怎么连的 sftp生成公钥_python_05

四、 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))