0

我有一台无法使用预共享密钥的服务器,并且ssh- 所有身份验证都是通过交互式提示进行的。

该服务器还为非 root 用户禁用cron和禁用。at

我希望能够cron在我的本地计算机上执行一项工作,该工作将对远程服务器运行脚本以进行定期维护/报告。

我玩弄了expect一些,但注意到为了让它在正确的时间自动将密码输入到提示中,它需要以明文形式存储。

有没有办法以这样的方式保护密码,即我输入一次,然后在本地加密/无论什么(就像passwd那样),然后我没有将明文密码存储在脚本本身中?

4

2 回答 2

2

存储密码总是不安全的(如果您需要访问明文密码)。您的脚本必须具有“未编码”逻辑。任何对您的脚本具有读取权限的人都将能够找出编码密码的存储位置以及如何取消编码。

这是对你的判断。您更看重哪个:自动化(以节省您的时间)或密码安全?

于 2010-04-08T10:52:32.147 回答
2

由于基于僵尸网络的攻击能够削弱拒绝主机的实用性,因此坚持使用基于密码的身份验证是非常不安全的。但如果你必须,你必须...

当陷入这种情况时,我要做的是将密码放在与脚本分开的文件中,使该密码文件只能由我读取,并使其目录也只能由我读取(和可执行)。我还将非常注意确保密码永远不会作为参数或环境变量传递;这两者都可以用ps. 传递密码文件的名称是可以的(可以保护路径)并且通过未命名的管道传递密码也是安全的。

于 2010-04-08T14:09:27.243 回答