我想使用公钥和私钥加密设置安全 FTP 服务器。 Java 程序将从该服务器上传和下载文件。我是否需要两对 key ,一对用于上传,一对用于下载?
我需要支持两种操作。
Java客户端(私钥)-----------------上传文件----------服务器(公钥)客户端生成的 key
Java客户端(公钥)--------------------下载文件--------服务器(私钥)服务器生成的 key
可以使用一对 key 来完成吗?
最佳答案
首先,您可能指的是 SFTP,而不是安全 FTP (FTPS)。
<小时/>您似乎误解了 FTPS 中公钥身份验证的工作原理。
仅使用公钥您无法执行任何操作。您也始终需要私钥。即使是下载。任何 SFTP session 都是双向的。您总是需要向服务器发送一些内容(至少是 SFTP/SSH 请求),并且需要使用私钥对它们进行加密。
<小时/>回答您的问题:是的,您需要两个 key 对。或者更确切地说,您需要两个 SFTP/SSH 帐户。
<小时/>要仅使用用于下载的公钥,您将需要使用普通 FTP 并仅使用 key 对来加密/解密文件。但这不再是 SFTP。
关于java - 为 Java 客户端设置 SFTP 服务器以仅允许使用公钥下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34629974/