我们需要安全地向客户提供文件。我们希望传输过程加密,用户需要输入用户名/密码,并且他们应该能够通过 Web、ftp/sftp 和 curl 访问他们的文件。
显而易见的想法是使用 openssh 及其 sftp 服务器。但是,我不知道如何为 sftp 服务器提供 Web 界面。
换句话说,虽然大多数客户端会使用自动脚本来获取文件,但他们可能偶尔需要从网页手动获取文件(这意味着他们需要手动输入用户名/密码)
有任何想法吗?
编辑:抱歉,忘了说我们打算通过 Linux 服务器提供这些文件
答案1
拥有“sftp://”链接确实需要您有一个注册的支持 sftp 的客户端来处理 sftp UNC,并且还需要重新登录,除非您在 unc 中提供用户名/密码...即 sftp://user:[电子邮件保护]/path/file。这实际上违背了将 sftp 服务器与 http 服务器分开的目的。
为什么不简单地使用您选择使用的任何身份验证方法建立 HTTPS 会话,然后让 http 服务器分发文件?如果您使用的是 apache,则可以允许目录浏览,它将自动从特定目录生成目录列表……并且您可以从同一目录中进行 sftp 提取。(如果您希望同时使用两者)
如果您坚持使用 sftp...请不要忘记限制使用 ssh 的用户登录以仅允许 sftp 和/或 scp...否则您将面临一个巨大的安全漏洞。
答案2
答案3
为什么需要 sftp?您是否考虑过只设置 webdav?使用 webdav,用户将能够直接通过 HTTP(S) 上传和获取文件。
答案4
看看如何使用 AnyClient。这是一项免费的基于 Web 的服务,允许用户从网页连接到 FTP/S、SFTP、WebDAV 和 Amazon S3 服务,而无需安装任何客户端软件。
http://www.jscape.com/products/file-transfer-clients/anyclient/