服务器端 SSH 密钥认证

服务器端 SSH 密钥认证

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

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

我看到 AWS 服务器(亚马逊网络服务器)在服务器创建期间提供密钥,客户端可以使用它来登录。

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

  1. 我怎样才能实现这个目标?
  2. 我应该如何命名分发给客户端的这些密钥?是公钥吗?

我这里是否遗漏了有关公钥/私钥的任何理论?

答案1

Amazon Linux 用途密钥对和你一样,但是分发一个私钥。

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

您应该注意安全问题,因为“私钥之所以被称为私钥是有原因的。

答案2

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

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

相关内容