SSH:你是否为每个远程机器使用一个私钥/公钥对? 还是一对呢?

当你想为多台机器使用基于公钥的sshlogin时,你是否使用一个私钥,并在所有机器上放置相同的公钥? 或者每个连接都有一对私钥/公钥对?

    我使用共享一个共同pipe理边界的每套系统中的一个密钥。 这就限制了如果一个密钥被泄露而被popup的机器的数量,同时又不能完全压倒我存储和pipe理数千个密钥的能力。 每个密钥上的不同密码意味着即使所有的私钥都被盗了,而且一个密钥被泄露了,其他的密钥也不会随着密码而下落。 另外,如果你确实做了一些愚蠢的事情(比如把一个私钥拷贝到一个不可信的机器上),那么你不必重新input所有的东西,只需要input与该密钥相关的机器。

    公钥并不重要,因为根据定义它可以被公开。 所以唯一的问题是你的私钥的隐私。 他们在你自己的机器上,所有在一起,所以如果一个人妥协,他们可能都会受到损害。 因此,为了达到同样的效果,多个关键字只是更多的工作。

    唯一的时候我会使用不同的键是不同的帐户或不同的angular色,根据定义,不应该有访问完全重叠。

    如果我理解正确,每台服务器都将拥有自己的公钥。

    对于给定的用户 ,您可以生成一个密钥并在任何地方使用,只要将私钥复制到所有启动主机。 (这将通过networking安装的主目录和基于目录的authentication系统(如OpenLDAP)自动发生,因为无论用户login哪个工作站,用户总是“相同”。)

    除了基于目录的用户系统之外,我认为在任何地方使用相同的密钥都是一个糟糕的想法,最终会导致系统安全性的降低,因为任何可以从任何工作站获得密钥的人都可以进行身份​​validation该用户到远程服务器。

    另一种select,由几家大公司(我确信也是小公司)强加的是,绝不允许“用户”使用预共享密钥,而是login到“跳转”或“中心”框, su到适当的连接用户,然后从那里到他们需要pipe理的服务器的SSH。

    而且,如果您使用HP的Server Automation平台等pipe理系统,则托pipe服务器的远程pipe理将成为一个更简化的过程。

    正如其他人所说的,尽pipe多重密钥对的想法看起来更安全,但如果有机会,它们将被用在同一个地方,那么它就更加麻烦,而不是更安全。 多个密码短语会使它更安全,但是也很难记住哪个密码与哪个密钥相关,哪个密钥与哪个服务器密切相关。

    对我来说,最合理的答案就是只有在涉及单独的pipe理angular色而没有太多重叠的情况下才这样做。 这样可能是不同的人处理不同的angular色,或在不同的工作站或其他。 在这种情况下,你有更多独特的东西来处理每个不同的angular色,所以更合理。

    为了便于pipe理多个支持SSH的服务器,您可能需要检查cssh 。 您可以将cssh与passphrased SSH密钥相结合,大大增强您同时pipe理多个服务器的能力。