我正在寻找一种方法来将媒体文件列表从远程 Windows 机器批量上传到 Linux 服务器。
文件在发送之前应该加密,所以我正在查看 SCP 或 SFTP。
文件被上传到公共网络目录,以便可以在托管在 Linux 服务器上的网站上查看。
我现有解决方案的问题是服务器的用户名和密码存储在远程机器上。使用这些凭据,可以访问整个 Web 服务器,因此显然我需要替换它们。
另一个问题是,我只想让远程 PC 具有写入公共目录的能力而不具有其他任何能力,同时仍允许 Web 服务器访问这些文件。
我该如何设置?
谢谢
答案1
1)使用SSH 公钥认证而不是纯文本密码
2) 您的 SFTP 服务器应允许您限制登录用户可以访问的目录。通常默认情况下,这是用户的 HOME 目录。我发现的一个巧妙技巧是使用该mount --bind /new/bind/path
功能。这将允许您将公共目录绑定到另一个位置(例如 ftp 用户的 HOME 目录),并且对任一位置的任何写入都将反映在两个位置中。
如果你想在 Windows 上使用公钥认证进行 SSH,请下载免费的PuTTY SSH 客户端(putty.exe)并查看此链接有关使用 PuTTY 的公钥的说明。
答案2
我赞同 SiegeX 使用 SSH 密钥登录的建议。
我以前用 putty 的 PSCP 程序做过类似的事情。如果使用 SSH 密钥而不是密码,那么在脚本中使用它来自动化操作就很容易了。我使用 activeperl 编写了一个快速的 perl 脚本,然后只要在 Windows 中双击它,无论何时我想上传更改都可以。