如何设置 SSH 以允许 5 个人使用相同的凭据登录到 100 个 Linux 机器?

usr*_*ΛΩΝ 5 ssh user-management

假设我有 5 个用户和 100 台启用了远程 shell 的 Linux 机器。如何设置环境以允许这些少数用户使用相同的凭据登录任何机器?

usr*_*ΛΩΝ 2

设置 LDAP 域

通过使用 LDAP 域,对任何计算机的每个身份验证请求都会重定向到域控制器。据我所知,一些 Linux 发行版可以加入 Windows 域(如果您已经有一个活跃的域)。这样您就可以完全集中控制网络中的所有用户。您可以立即从一台计算机添加和删除用户。

优点:

  • 最容易维护
  • 用户管理立竿见影
  • 如果您的公司已经拥有活跃的域名,则非常有用且便宜
  • 与常见的域管理软件集成(即,如果您使用 Windows)

缺点:

  • 如果 LDAP 控制器不是集群的,那将是单点故障,因此您必须考虑更多服务器
  • (续)LDAP 和集群的额外服务器使解决方案更加昂贵
  • 如果您还没有运行域控制器,则设置起来会有点困难
  • AFAIK 你不能使用公钥身份验证

从集中式机器分发 SSH 密钥

当您想要使用更强大的公钥身份验证时,这非常有用。您可以将所有用户的密钥上传到一个运行 Cron 作业的机器上,scp以特定的时间间隔将 pubkey 复制到正确的主目录

优点:

  • 容错。任意数量的服务器都可能崩溃,但可用的机器不会受到影响
  • 设置最简单、最便宜

缺点:

  • 如果您有超过“五个”用户,即。您正在大型企业网络上工作,用户管理极其困难
  • (续上)必须为每台服务器完成用户创建、删除等操作,通常使用复制命令的脚本
  • 如果您不手动运行脚本,公钥会延迟更新

将主目录挂载到共享网络驱动器(NFS、SSHFS...)

这样做的优点是可以实时修改公钥(因为它们总是从网络共享中读取)。此外,如果您创建/etc/shadow到共享驱动器的符号链接,您可以从控制器进行实时用户管理

优点:

  • 除了实时修改之外不多
  • 整个主目录在服务器之间共享(相信我,它通常很方便......)

缺点:

  • 与 LDAP 域一样具有容错能力。您需要复制主目录,否则无法进行身份验证
  • 比这两种解决方案的设置和维护都更棘手

  • 您**可以**将密钥身份验证与 LDAP 结合使用。PAM 将使用 LDAP 密码来处理 sudo 密码等内容,但在使用 SSH 连接时仍会查看“~username/.ssh/authorize_keys”。此外,较新版本的 OpenSSH 能够直接从 LDAP 中提取公钥。 (3认同)
  • 我非常怀疑你可以将 /etc/shadow 符号链接到网络卷是否会起作用。事实上,我怀疑这会导致系统无法启动。 (2认同)