为近 30 名用户的大量(近 9000 台)服务器自动化并创建 SSH 密钥

为近 30 名用户的大量(近 9000 台)服务器自动化并创建 SSH 密钥

有没有办法自动为近 30 个用户的大量(近 9000 个)服务器创建 SSH 密钥

答案1

如果你有 9,000 台服务器接受同一管理,那么你可能会遇到某种形式的配置管理到位。可以是 Puppet、Chef、Ansible 等形式。您可以通过这种方式分发公钥。

对于 30 个用户,这也可以通过中央目录身份验证(LDAP、Active Directory)来处理。

答案2

你可能做错了。

每个用户(共 30 个)必须创建自己的(因此是私钥!)密钥。每个用户的公钥都发给他有权访问的每个服务器(共 9000 个)。

不要反其道而行。

答案3

如果您的服务器使用的是较新的 openssh 版本(我认为 > 5.4),您应该查看那里的基于证书的身份验证。您可以在此处找到此功能的介绍:http://neocri.me/documentation/using-ssh-certificate-authentication/或者在 ssh 包文档中。

简而言之,

  • 用户生成他们的私钥/公钥对。
  • 您(管理员)创建一个或多个 SSH CA 证书(your-user-ca),用于签署用户公钥。
  • 您(管理员)使用一个 CA 证书签署用户公钥。例如“ssh-keygen -s your-user-ca -I“用户名”-Z 用户名 -V +52w user-key.pub”。这将创建一个 user-key-cert.pub,您需要将其发送回相应的用户。
  • 您(管理员)在 9000 台服务器的 sshd 配置中安装受信任的 SSH CA 证书。您无需声明每个用户的每个公钥。
  • 用户可以连接。

嗯。

答案4

  1. 让每个用户创建一个公钥/私钥。

  2. 将每个用户的公钥分发到每个服务器

  3. 利润。

玩笑归玩笑,这是一个经典的配置管理问题。考虑一下,除了发布密钥之外,您还需要至少创建主目录和用户帐户以及单独的 .ssh 目录。

我不会试图一次性解决所有 30/9000 的问题,而是先在一台服务器上自动化一个用户,然后再从那里进行构建。

参见:木偶厨师Ansible用于指针。

相关内容