服务器端的SSH密钥认证

Mid*_*ose 4 linux ssh ssh-keys

我通常按​​如下方式进行 ssh 密钥认证:

  1. 在客户端 pc ( # ssh-keygen -t rsa)上生成密钥
  2. 将密钥复制到服务器(使用ssh-copy-id或通过其他方式)
  3. 从客户端 PC 访问服务器。

我已经看到 AWS 服务器(亚马逊网络服务器)在服务器创建过程中提供了一个密钥,然后客户端可以使用它来登录。

现在我有一台服务器,我想在其中生成密钥并将其分发给我的客户。每个拥有该密钥的人都必须能够访问服务器。

  1. 我怎样才能做到这一点?
  2. 我应该如何命名分发给客户的这些密钥?是公钥吗?

我在这里错过了关于公钥/私钥的任何理论吗?

Mad*_*ter 18

不要这样做。如果您的所有客户端都使用相同的密钥对来访问服务器,并且您的一个客户端离开了,那么您无法在不切断所有人的情况下删除他们的访问权限。

至少,让每个客户端生成他们自己的密钥对并向您发送公钥(这也比向他们发送私钥更不安全),然后将所有公钥放入服务器的 authorized_keys 文件中。更好的是,在服务器上为每个客户端创建自己的用户帐户,并将每个客户端的公钥放入相关用户帐户的 authorized_keys 文件中。