我想使用公钥和私钥加密设置Secure FTP Server。 Java程序将从此服务器上载和下载文件。我需要有两对密钥用于上传,一对用于上传,一对用于下载吗?
我需要支持两项操作。
Java客户端(私钥)-----------------上传文件-----------服务器(公钥)生成的密钥客户端
Java客户端(公钥)--------------------下载文件---------服务器(私钥)密钥生成在服务器上
可以使用一对钥匙完成吗?
答案 0 :(得分:0)
首先,您可能是指SFTP,而不是安全FTP(FTPS)。
您似乎误解了FTPS中的公钥身份验证的工作原理。
您只能使用公钥执行任何操作。您也总是需要私钥。即使是下载。任何SFTP会话都是双向的。您总是需要将某些内容发送到服务器(至少是SFTP / SSH请求),并且需要使用私钥加密。
回答你的问题:是的,你需要两个密钥对。或者您需要两个SFTP / SSH帐户。
要仅使用公共密钥进行下载,您需要使用普通FTP并使用密钥对仅加密/解密文件。但那不再是SFTP了。
答案 1 :(得分:0)
连接是双向的 - 您可以使用单一连接上传和下载任意数量。
话虽如此,一个连接中有两个密钥对:客户端和服务器。服务器将其公钥提供给客户端,以验证您是否正在与正确的服务器通信。客户端公钥将添加到服务器上的授权密钥列表中。