Nick Asked: 2009-11-03 03:49:32 +0800 CST2009-11-03 03:49:32 +0800 CST 2009-11-03 03:49:32 +0800 CST SSH:您是否为每台远程机器使用一对私钥/公钥?还是所有人都买一对? 772 当您想为多台机器使用基于公钥的 ssh 登录时,您是否使用一个私钥,并将相同的公钥放在所有机器上?还是每个连接都有一个私钥/公钥对? ssh 5 个回答 Voted Best Answer womble 2009-11-03T04:05:03+08:002009-11-03T04:05:03+08:00 我对每组共享一个共同管理边界的系统使用一个密钥。如果密钥被泄露,这会限制弹出的机器数量,同时不会完全压倒我存储和管理数千个密钥的能力。每个密钥上的不同密码意味着即使您的所有私钥都被盗并且一个密钥被泄露,其余的也不会带着它去厕所。此外,如果您做了一些愚蠢的事情(例如将私钥复制到不受信任的机器上),您也不必重新设置所有内容,只需与该密钥关联的机器即可。 Lee B 2009-11-03T12:21:33+08:002009-11-03T12:21:33+08:00 公钥并不重要,因为根据定义,它可以被公开。所以唯一的问题是你的私钥的隐私。它们在你自己的机器上,而且都在你自己的机器上,所以如果一个被攻破,它们很可能都会被攻破。因此,多个密钥对只是为了相同的效果而做更多的工作。 我唯一一次使用不同的密钥是针对不同的帐户或不同的角色,根据定义,它们不应该在访问权限上完全重叠。 warren 2009-11-03T04:05:51+08:002009-11-03T04:05:51+08:00 如果我理解正确,每台服务器都会有自己的公钥。 对于给定的用户,您可以生成一个密钥并在任何地方使用它,只要将私钥复制到所有启动主机即可。(这将通过网络安装的主目录和基于目录的身份验证系统(例如 OpenLDAP)自动发生,因为无论用户从哪个工作站登录,用户都将始终“相同”。) 在基于目录的用户系统之外,我认为在任何地方都使用相同的密钥是个坏主意 - 您最终会降低系统安全性,因为任何可以从任何工作站获取密钥的人都可以进行身份验证该用户到远程服务器。 几家大公司(我相信小公司也是)采用的另一种选择是永远不允许“用户”使用预共享密钥,而是登录到“跳转”或“集线器”框,su连接到相应的连接用户,然后从那里通过 SSH 连接到他们需要管理的服务器。 此外,如果您使用像 HP 的 Server Automation 平台这样的管理系统,那么托管服务器的远程管理将变得更加简化。 fred 2012-07-16T17:45:55+08:002012-07-16T17:45:55+08:00 正如其他人所说,虽然多个密钥对的想法可能看起来更安全,但如果有机会以它们都在同一个地方的方式使用它们,那么它只会更麻烦而不是更安全。多个密码短语会使其更安全,但也让人头疼,试图记住哪个密码短语与哪个密钥一起使用,以及哪个密钥与哪个服务器一起使用。 对我来说最合理的答案是建议仅在涉及单独的管理角色而没有太多重叠的情况下才这样做。这样可能是不同的人处理不同的角色,或者在不同的工作站或其他任何地方。在这种情况下,无论如何,每个不同的角色都有更多独特的事情要处理,所以它更合理。 Greeblesnort 2009-11-03T12:35:10+08:002009-11-03T12:35:10+08:00 为了便于管理多个支持 SSH 的服务器,您可能需要查看cssh。您可以将 cssh 与密码 SSH 密钥结合使用,以极大地增强您同时管理多个服务器的能力。
我对每组共享一个共同管理边界的系统使用一个密钥。如果密钥被泄露,这会限制弹出的机器数量,同时不会完全压倒我存储和管理数千个密钥的能力。每个密钥上的不同密码意味着即使您的所有私钥都被盗并且一个密钥被泄露,其余的也不会带着它去厕所。此外,如果您做了一些愚蠢的事情(例如将私钥复制到不受信任的机器上),您也不必重新设置所有内容,只需与该密钥关联的机器即可。
公钥并不重要,因为根据定义,它可以被公开。所以唯一的问题是你的私钥的隐私。它们在你自己的机器上,而且都在你自己的机器上,所以如果一个被攻破,它们很可能都会被攻破。因此,多个密钥对只是为了相同的效果而做更多的工作。
我唯一一次使用不同的密钥是针对不同的帐户或不同的角色,根据定义,它们不应该在访问权限上完全重叠。
如果我理解正确,每台服务器都会有自己的公钥。
对于给定的用户,您可以生成一个密钥并在任何地方使用它,只要将私钥复制到所有启动主机即可。(这将通过网络安装的主目录和基于目录的身份验证系统(例如 OpenLDAP)自动发生,因为无论用户从哪个工作站登录,用户都将始终“相同”。)
在基于目录的用户系统之外,我认为在任何地方都使用相同的密钥是个坏主意 - 您最终会降低系统安全性,因为任何可以从任何工作站获取密钥的人都可以进行身份验证该用户到远程服务器。
几家大公司(我相信小公司也是)采用的另一种选择是永远不允许“用户”使用预共享密钥,而是登录到“跳转”或“集线器”框,
su
连接到相应的连接用户,然后从那里通过 SSH 连接到他们需要管理的服务器。此外,如果您使用像 HP 的 Server Automation 平台这样的管理系统,那么托管服务器的远程管理将变得更加简化。
正如其他人所说,虽然多个密钥对的想法可能看起来更安全,但如果有机会以它们都在同一个地方的方式使用它们,那么它只会更麻烦而不是更安全。多个密码短语会使其更安全,但也让人头疼,试图记住哪个密码短语与哪个密钥一起使用,以及哪个密钥与哪个服务器一起使用。
对我来说最合理的答案是建议仅在涉及单独的管理角色而没有太多重叠的情况下才这样做。这样可能是不同的人处理不同的角色,或者在不同的工作站或其他任何地方。在这种情况下,无论如何,每个不同的角色都有更多独特的事情要处理,所以它更合理。
为了便于管理多个支持 SSH 的服务器,您可能需要查看cssh。您可以将 cssh 与密码 SSH 密钥结合使用,以极大地增强您同时管理多个服务器的能力。