SFTP InputStream 需要 URL

need URL for SFTP InputStream

我正在编写一个需要通过 sftp 连接到服务器上的 GATE 数据存储的应用程序。为了打开数据存储,我需要为它设置 url。我在 Jsch class.

的帮助下通过 sftp 和 public/private 密钥授权访问数据存储区

我可以使用 ChannelSftp 获取数据,然后获取相应目录的 InputStream。我试图用 sftp.getHome() 获取路径,但这只给了我相对路径。不过,为了连接到数据存储区,我需要这样的东西:

"sftp://path/to/datastore"

有没有办法获取 sftp InputStream 的 url?

我知道我可以将数据从 InputStream 加载到本地文件,但我不想这样做,因为数据存储区很大。我也知道我可以通过在 url 中输入用户名和密码来连接到 sftp,但我想使用 public 密钥。

没有什么比得上 SFTP URL。

十年前有人试图标准化 SFTP URL:
https://datatracker.ietf.org/doc/html/draft-ietf-secsh-scp-sftp-ssh-uri-04

它从未完成,提案在几年前就已经过期了。


因此,即使 JSch 可以生成类似 SFTP URL 的东西(它不能),您也无法知道它是否适用于其他系统,因为没有通用标准。

您必须自己生成 URL,符合目标系统的专有语法。


我从未见过任何软件可以让您在 SFTP 中指定私钥 URL。

一般来说,您可以将私钥加载到系统可以从中读取密钥的某些身份验证代理中。