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

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

我想使用公钥和私钥加密设置安全 FTP 服务器。 Java 程序将从该服务器上传和下载文件。我是否需要两对 key ,一对用于上传,一对用于下载?

我需要支持两种操作。

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

  2. 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/

相关文章:

objective-c - 通过 FTP/SFTP 解析远程 $HOME 目录

eclipse - 如何使用 "Remote System Explorer End-User Runtime"Eclipse 插件和 .pem 私钥连接到 SFTP 服务器?

phpseclib - 我可以使用用户名、 key 和密码(不是 key 密码)进行连接吗

ssh - 如何使用 ssh 公钥进行 gpg 加密?

java - 如何在android 的listview 中显示来自mySQL 的数据?

java - 我的单例模式实现错误

java - jboss 5.1 : How to share session between multiple wars

java - java中多线程的使用

java - 使用公钥-私钥加密

cryptography - 为什么 Google、Facebook 等网站使用公钥加密技术(这些网站中需要对数据进行编码)?