我必须实现一个需要用户名和密码的自动 SFTP 文件传输。
我不想将密码留在文本文件/批处理脚本中让别人偶然发现,因此出于安全原因,我选择将用户名和密码存储在特定用户的环境变量中。
当自动化 WinSCP 脚本运行时,它会按规定工作。
现在,任何具有适当管理权限的用户都可以编辑注册表并在其中找到凭据。虽然比标准批处理文件更安全,但我对此仍然不太满意。
我想知道是否有比这更安全的方法来存储敏感变量,以及其他人是否想到了更好的方法?
答案1
正如所提到的WinSCP 关于凭证安全性的文章(尽管上下文略有不同):
无法以安全的方式加密密码并保证其可自动使用。
但是,您可以更好地隐藏/混淆它们,而不是将它们以纯文本形式存储在 Windows 注册表中。
例如,您可以使用包装器 PowerShell 脚本中的“安全字符串”(请参阅ConvertTo-SecureString
)。或者直接使用 PowerShell 并使用 WinSCP .NET 程序集完成整个传输。
请参阅另一篇 WinSCP 文章保护用于自动化的凭据。