![所有 ec2 盒子上的临时 ssh 访问](https://linux22.com/image/802516/%E6%89%80%E6%9C%89%20ec2%20%E7%9B%92%E5%AD%90%E4%B8%8A%E7%9A%84%E4%B8%B4%E6%97%B6%20ssh%20%E8%AE%BF%E9%97%AE.png)
我想为周末值班的承包商提供使用 sudo 在生产 ec2(ubuntu)机箱集群上进行 ssh 访问的功能。我想使用简单的命令行脚本或工具轻松启用/禁用对所有机箱的访问。
我最好不要分享 pem 文件或类似的东西。在专业环境中,人们通常如何做这样的事情?
答案1
抱歉,没有 ubuntu,但大多数 linux 已经有了这个,有一个使用 /etc/security/time.conf 配置的 PAM 模块,time.conf 中的以下条目将仅允许someguy
周末访问
login & ssh;*;someguy;Wk0000-2400
答案2
有很多不同的方法可以做到这样的事情,取决于现有的基础设施、所涉及的机器数量以及设置可重复使用解决方案的可用时间。
你有一个集中式身份验证和授权服务器,通常是 LDAP/Kerberos 服务器,例如免费IPA。 有客户目前适用于 Ubuntu 中的 2.x 和 3.x。在这种情况下,您只需要在临时窗口之前和之后启用/禁用(最好是名义上的)帐户。由于 FreeIPA 服务器具有 CLI,因此此任务只需一个命令即可完成。此方法的其他优点包括轻松启用/禁用自定义 HBAC 和 sudorules,因此此解决方案可以毫无问题地应用于任何数量的机器,并且完全可重复使用。还有一些适用于 FreeIPA 的 puppet 模块正在开发中。
你没有集中式身份服务器,但有某种配置管理,例如
puppet
。您只需更改用户定义中的一个参数并应用更改。这种类型的解决方案与您使用所选配置管理工具推广代码的方式有关。你没有这些。还有希望。工具如ansible,不需要目标服务器中安装任何软件,只需
ssh
访问即可。创建和销毁用户帐户只需一行代码即可完成。有一个模块就为了这个。你不想修改其中任何一个。使用
mussh
或使用自定义的 shell 脚本来完成该工作。