在所有ec2盒子上临时SSH访问

我想提供一个周末随叫随到的承包商ssh访问与sudo在生产ec2(ubuntu)箱子群。 我想通过一个简单的命令行脚本或工具轻松地启用/禁用对所有框的访问。

我最好不喜欢分享pem文件或类似的东西。 在专业环境中,人们通常如何做这样的事情?

对不起,没有Ubuntu,但大多数Linux已经有了这个,这是一个configuration了/etc/security/time.conf的PAM模块,time.conf中的以下条目将只允许someguy周末访问

 login & ssh;*;someguy;Wk0000-2400 

有很多不同的方法可以做到这一点,这取决于现有的基础设施,所涉及的机器数量以及可用时间来设置可重复使用的解决scheme。

  1. 您有一个集中的身份validation和授权服务器,最后是一个LDAP / Kerberos服务器,如FreeIPA 。 到目前为止,在Ubuntu中都有用于2.x和3.x的客户端 。 在这种情况下,您只需在临时窗口之前和之后启用/禁用(最好是名义上的)帐户。 由于FreeIPA服务器有一个CLI,这个任务只是一个命令。 这种方法的其他优点包括轻松启用/禁用自定义的HBAC和汗滴,所以这个解决scheme可以适用于任何数量的机器,并且是完全可重用的。 作品中还有一些FreeIPA的傀儡模块。

  2. 你没有一个集中的身份authentication服务器,但是有一些configurationpipe理,比如puppet 。 您只需要更改用户定义中的一个参数并应用更改。 这种types的解决scheme与您使用您select的configurationpipe理工具促进代码的方式相关。

  3. 你没有这些。 还是有希望的 像ansible这样的工具,不需要目标服务器上的任何软件,只需要ssh访问。 创build和销毁用户帐户可以做很less的努力,只是一个class轮。 只有这个模块 。

  4. 你不想鼓捣任何这些。 使用mussh或自定义shell脚本来完成这项工作。