为Java客户端设置SFTP服务器以允许仅使用公钥进行下载

时间:2016-01-06 09:46:36

标签: java sftp public-key-encryption ftp-client openssh

我想使用公钥和私钥加密设置Secure FTP Server。 Java程序将从此服务器上载和下载文件。我需要有两对密钥用于上传,一对用于上传,一对用于下载吗?

我需要支持两项操作。

  1. Java客户端(私钥)-----------------上传文件-----------服务器(公钥)生成的密钥客户端

  2. Java客户端(公钥)--------------------下载文件---------服务器(私钥)密钥生成在服务器上

  3. 可以使用一对钥匙完成吗?

2 个答案:

答案 0 :(得分:0)

首先,您可能是指SFTP,而不是安全FTP(FTPS)。

您似乎误解了FTPS中的公钥身份验证的工作原理。

您只能使用公钥执行任何操作。您也总是需要私钥。即使是下载。任何SFTP会话都是双向的。您总是需要将某些内容发送到服务器(至少是SFTP / SSH请求),并且需要使用私钥加密。

回答你的问题:是的,你需要两个密钥对。或者您需要两个SFTP / SSH帐户。

要仅使用公共密钥进行下载,您需要使用普通FTP并使用密钥对仅加密/解密文件。但那不再是SFTP了。

答案 1 :(得分:0)

连接是双向的 - 您可以使用单一连接上传和下载任意数量。

话虽如此,一个连接中有两个密钥对:客户端和服务器。服务器将其公钥提供给客户端,以验证您是否正在与正确的服务器通信。客户端公钥将添加到服务器上的授权密钥列表中。