服务器端的SSH密钥validation

我通常做如下ssh密钥authentication:

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

我已经看到AWS服务器(Amazon Web服务器)在服务器创build期间提供一个密钥,然后客户端可以使用它login。

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

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

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

Amazon Linux使用密钥对 ,但分配私钥。

因此,如果您在服务器端生成用户,则应该像往常一样在/home/your_user/.ssh/authorized_keys上添加公钥,然后将私钥分发给客户端。

您应该了解安全问题,因为“ 私钥被称为私人的原因”。

不要这样做。 如果所有客户使用相同的密钥对访问服务器,并且其中一个客户离开,则不能删除其访问权限而不切断所有人。

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