【问题标题】:Setting up SFTP Sever for Java client to allow downloads with public key only为 Java 客户端设置 SFTP 服务器以仅允许使用公钥下载
【发布时间】:2016-04-10 08:34:35
【问题描述】:

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

我需要支持两个操作。

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

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

可以使用单对密钥来完成吗?

【问题讨论】:

  • 为什么需要引入第二对? sftp i ftps 协议也解决了这个问题

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


【解决方案1】:

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


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

你不能只用公钥做任何事情。你也总是需要私钥。即使是下载。任何 SFTP 会话都是双向的。你总是需要向服务器发送一些东西(至少是 SFTP/SSH 请求),并且它们需要用私钥加密。


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


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

【讨论】:

    【解决方案2】:

    连接是双向的 - 您可以通过单一连接随意上传和下载。

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

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 2022-01-09
      • 2019-11-27
      • 2022-09-29
      • 1970-01-01
      • 1970-01-01
      • 2018-11-08
      • 2019-08-23
      相关资源
      最近更新 更多