我正在尝试创建一个 SFTP 服务器,该服务器可以根据文件是 SFTP 的用户向不同的 VM 提供文件。
我们之前曾使用 bitvise 创建“虚拟账户”,并将根目录限制为我们希望用户文件所在的位置。这涉及在我们拥有的每台服务器上安装 bitvise。
我们正在尝试将其转移到专用的 SFTP VM,然后该 VM 可以将其文件提供给相关机器。参见下图:
举个例子。某人通过 SFTP 将文档发送到用户凭证“用户 1”,这些文档将可访问/传输到 VM 1;如果某人通过 SFTP 将文档发送到用户凭证“用户 2”,这些文档将可访问/传输到 VM 2
我曾尝试使用 Azure 的“文件共享”来创建网络驱动器,但这似乎会导致通过 SFTP 访问文件夹时出现权限错误
答案1
使用 Azure 文件共享时,安装驱动器的用户就是有权访问的用户。在本例中,用户将是 bitvise 虚拟用户。最好的办法是设置 Active Directory 并让 bitvise 使用用户的广告凭据。这将保持用户权限不变。否则,您唯一真正的选择是为用户提供虚拟安装点。或者您可以在已安装的共享驱动器中创建特定文件夹,并让用户映射到他们的目录。
Azure 文件共享主要用作 NFS 挂载路径,可由其他机器挂载以实现分布式文件访问。
答案2
听起来这个产品,完整的FTP,我是其中一位主要开发人员,可以非常轻松地处理该要求。CompleteFTP 具有极其灵活的虚拟文件系统 (VFS),您可以在其中无缝挂载来自不同文件系统的目录。有很多不同的可能性。例如,您可以:
安装 UNC 路径VFS 中的共享目录。这当然需要虚拟机之间的 SMB 访问。
在每个虚拟机上安装 CompleteFTP 的免费版本(仅支持 FTP 和 FTPS),只允许访问您的 SFTP 服务器,然后使用网关文件夹CompleteFTP 的功能是将虚拟机的 FTP 文件夹挂载到 SFTP 服务器的 VFS 中。这样,当用户切换到网关文件夹时,他们实际上是在访问虚拟机的文件系统,而没有任何外部迹象表明正在发生这种情况。网关文件夹在企业版中可用。
如果您的要求非常具体,那么 CompleteFTP 提供自定义文件系统适配器(。网或者JavaScript)这些允许您开发几乎无限复杂度的自己的虚拟文件系统。