在客户端与服务器上生成 ssh 密钥之间的优缺点

在客户端与服务器上生成 ssh 密钥之间的优缺点

如果我想让另一个用户能够 ssh 进入我的 ec2 实例,在 ec2 实例中为该用户生成 ssh 密钥,然后将私钥复制到该用户的本地计算机,与新用户在本地计算机上生成 ssh 密钥并将公钥复制到 ec2 实例授权密钥?

如果用户只在本地计算机上生成 ssh 密钥,因为您只需复制公钥而不必复制私钥,会更安全吗?

答案1

在概述这两​​种方法的优点之前,我将指出此类事物的行业标准是在客户端系统而不是服务器上生成密钥对,主要是因为它提供了更好的用户体验。

现在,就优点和缺点而言,它们几乎是相辅相成的,所以我只列出每种方法的优点。

在客户端生成密钥:

  • 与 ssh 直接简单集成。如果您使用 ssh 本身生成密钥并且它是您唯一的密钥,那么默认情况下它会自动出现在正确的位置,从而简化了非技术用户的操作。
  • 理论上,客户端系统上用于生成密钥的熵质量可能会比 EC2 实例更好(VM 的熵是出了名的低)。
  • 用户始终确切地知道私钥在哪里,这对于验证密钥的安全性非常重要。
  • 如果用户已经拥有 SSH 密钥(一般来说,经常使用 SSH 的人经常这样做),他们只需发送公钥即可,而不必管理多个密钥对(这很痛苦)。

在 EC2 实例上生成密钥:

  • 将密钥复制到 EC2 实例上所需的位置非常简单。
  • 降低客户端系统的负载。
  • 更容易执行最低安全要求。

请注意,我明确没有在上面列出有关复制私钥而不是公钥的安全影响的任何内容。这是因为安全隐患完全取决于您用来复制它们的机制的安全程度。

相关内容