编辑 2019-09-12:听取了大家的意见。我决定我需要进一步研究 ssh 密钥管理。我将发布研究结果。
我正在运行 RHEL-7.7 作为主机管理程序。我正在运行多个虚拟机,每个虚拟机都有自己的特定功能(pfsense、入侵防御系统、安全入侵事件管理器)。除了带有 BSD 的 pfsense 路由器之外,所有机器都运行 Linux。
如果可能的话,我希望为每个虚拟机实例创建单独的 SSH 密钥。这样看起来似乎更安全,但是有没有什么地方没有好处呢?我应该与所有虚拟机共享我的 1 个公钥,还是制作单独的密钥?
答案1
不,但是当服务器太多时,它会变得非常难以管理。在我工作的公司,我一人管理着 350 名员工。通常,每人一个密钥对(不一定是用户名)是一个不错的选择。当该人离开公司/机构时,您可以编写一个 Ansible 剧本(例如)进入每个服务器并从 ~/.ssh/authorized_keys 文件中删除相应的公钥。
答案2
您需要设置.ssh/config
为对正确的盒子使用正确的钥匙,但这是您不需要每天都做的事情。
如果您的一个密钥被泄露,那么您只需要换出一个密钥。
但另一方面:如果您的一个密钥被泄露,那么它们很可能全部被泄露,特别是当您使用无密码密钥时。所以这可能会让更换钥匙变得很痛苦。
因此,根据您的安全需求,您可能需要混合搭配一个无密码密钥和几个具有良好密码的密钥。
答案3
我问你的第一个问题是“你为什么要这么做?”正如其他答案所指出的,管理起来可能很麻烦。
话虽这么说,我这里有几个环境。每个环境都有多个虚拟机。每个环境都有自己的一组 SSH 密钥。因此,您只能访问拥有正确 SSH 密钥的环境。
这对我们来说很有意义。我们没有为每个虚拟机提供单独的密钥。
什么有意义(对我来说):
数据库服务器可以有一个密钥对。所有 DBA/DBM 人员都使用它。
Web 服务器可以有一个(不同的)密钥对,供 Web 维护人员等使用。
这是在系统上实现“最小权限”的好方法。
0.02 美元