什么是共享 ssh-keypairs 的好且安全的方式?

the*_*cer 8 certificate ssh file-sharing public-key ssh-keys

我有一些密钥对,用作身份验证,用于通过 ssh 连接到我在 Amazon 云上的服务器。我每周手动轮换这些证书。我的问题是,我需要与一些同事共享证书,一些在局域网上,一些在国内其他地方。共享证书的最佳做法是什么?我最初的想法是 Dropbox 和电子邮件。我们不托管带有加密功能的专用电子邮件服务器,也没有 VPN。

谢谢。

Spi*_*iff 11

我怀疑您是否真的使用证书进行身份验证。几乎所有非基于密码的 SSH 身份验证都是使用公私密钥对完成的,但根本不涉及证书。在写这个答案之前,我在谷歌上搜索了“ssh 证书”,前 5 个点击来自白痴错误地将裸公钥(不是证书)称为证书。

以下是通过公私密钥对进行 SSH 身份验证的工作原理:

首先,您生成一个密钥对。这是两个加密链接的密钥,用一个密钥加密的任何东西只能由另一个解密,反之亦然。一对中的两个密钥之一被视为公钥,您不关心谁看到它。事实上,在大多数情况下,您希望您的公钥向全世界公开。另一个密钥被视为私钥,您不希望除您之外的任何人访问您的私钥。

在通过公私密钥对进行 SSH 身份验证的情况下,您将您的公有密钥放在服务器(在这种情况下是您的 Amazon EC2 实例)上的账户中的 authorized_keys 文件中,服务器允许任何知道耦合到的私有密钥的人用于登录服务器的公钥。

谁在乎是否有人破坏了您在 Amazon EC2 实例上的帐户并窃取了您的公钥?公钥不允许他们登录到任何你,因为知道公钥不允许他们知道的私钥,您无法登录到该帐户,除非你有私人,与进入关键帐户中的公钥。

当您的私有密钥(在家中或工作中您自己的 SSH 客户端计算机上)遭到破坏时,您只需更改 Amazon EC2 实例上的 SSH 公有密钥。

如果您需要您的同事能够登录到您的 EC2 实例上的相同帐户,请让他们向您发送他们的SSH 公钥——通过任何媒介,不需要保密,因为这些只是他们的公钥,而不是他们的私钥密钥——并将这些公有密钥附加到您的 Amazon EC2 实例账户中的 authorized_keys 文件。然后,您都可以登录这些帐户,并且您都可以通过永远不将它们发送到任何地方来完全保密您的私钥。