代码之家  ›  专栏  ›  技术社区  ›  warren

以安全的方式使用“expect”自动登录/远程工作

  •  0
  • warren  · 技术社区  · 14 年前

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

    该服务器还具有 cron at 对非根用户禁用。

    我想能够 克朗 本地计算机上的一个作业,它将对远程服务器运行一个脚本来执行定期维护/报告。

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

    有没有一种方法可以确保密码的安全,我只需输入一次,然后就可以在本地加密(比如 passwd 是的),然后我不会将明文密码存储在脚本本身中?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Donal Fellows    14 年前

    它是 非常不安全 由于基于僵尸网络的攻击会削弱Denyhosts的效用,所以要坚持基于密码的认证。但如果你必须,你必须…

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

        2
  •  2
  •   glenn jackman    14 年前

    存储密码总是不安全的(如果需要访问明文密码)。您的脚本必须具有“非编码”逻辑。任何对您的脚本具有读取权限的人都可以知道编码的密码存储在哪里以及如何对其进行解密。

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