我正在编写一些 shell 脚本来自动从我的服务器下载软件包并将它们设置在客户服务器上。在脚本中的某个时刻,下载命令是 wgethttp://example.com/file/secure_download.tar.gz- 我宁愿不在公共服务器上提供此敏感文件,因为任何人都可以扫描和下载这些文件。但是,我可以要求对这些目录进行身份验证,但如何将访问凭据与 wget 命令一起传递?或者有更好的方法来实现吗?
答案1
从wget手册:
'--用户=用户'
'--密码=密码'
指定FTP 和HTTP 文件检索的用户名user 和密码password。可以使用 FTP 连接的“--ftp-user”和“--ftp-password”选项以及 HTTP 连接的“--http-user”和“--http-password”选项覆盖这些参数。
所以你正在寻找的是:
$ wget --user=n3rve --password='mylittlepony' http://example.com/file/secure_download.tar.gz
如果可能的话,我建议设置一个 SFTP 服务器,您可以在其中创建并在您和您的客户服务器之间共享 SSH 密钥,它们可以安全地连接到您的 SFTP 服务器并提取所需的文件。
wget
这是一种比在 Web 服务器上使用安全得多的方法。整个设置需要您要求您的客户向您提供他们的公钥,您将其添加id_rsa.pub
到他们的.ssh/authorized_keys
文件中,他们将通过以下方式进行连接:
$ sftp [email protected]
[OR]
$ sftp [email protected]
*注意,不需要密码,因为您使用 ssh 密钥对创建了可信网络。