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

假设我有5个用户和100个启用远程shell的Linux机器。 如何设置环境以允许这几个用户使用相同的凭据login到任何机器?

设置LDAP域

通过使用LDAP域,每个对任何机器的authentication请求都被redirect到域控制器。 据我所知,一些Linux发行版可以joinWindows域,如果你已经有一个活跃的。 有了这个,您可以完全集中控制networking中的所有用户。 您可以立即从一台机器添加和删除用户。

优点:

  • 最容易维护
  • 用户pipe理的即时效果
  • 非常有用和便宜,如果你有一个已经在你的公司活跃的域名
  • 与常用的域pipe理软件集成(即如果您使用Windows)

缺点:

  • 如果LDAP控制器没有被群集,那将是一个单点故障,所以你必须考虑更多的服务器
  • (续)LDAP和群集的额外服务器使解决scheme更加昂贵
  • 如果您没有已经运行的域控制器,那么设置起来就有点困难
  • AFAIK你不能使用公钥authentication

从集中式机器分发SSH密钥

当您想要使用公钥更强的身份validation时,这非常有用。 您可以将所有用户的密钥上载到运行Cron作业的单个文件夹中,并以特定的时间间隔将pubkeys发送到正确的主目录

优点:

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

缺点:

  • 如果你有超过“五”的用户,即。 你正在一个庞大的企业networking上工作,用户pipe理是非常困难的
  • (继续)用户创build,删除等必须为每个服务器完成,通常使用复制命令的脚本
  • 如果您不手动运行脚本,则公钥将在延迟中更新

将主目录挂载到共享networking驱动器(NFS,SSHFS …)

这具有修改公钥的实时效果的优点(因为它们总是从networking共享读取)。 而且,如果你使/etc/shadow成为共享驱动器的符号链接,你可以通过你的控制器进行实时的用户pipe理

优点:

  • 除了实时修改以外,并不多
  • 整个主目录在服务器之间共享(它经常派上用场,相信我…)

缺点:

  • 作为LDAP域容错。 您需要复制主目录,否则您无法进行身份validation
  • 比两者的设置和维护的解决scheme更复杂

下面是一个大型组织如何使用Puppet和SSH密钥进行操作。 puppetmaster为每个用户分配用户帐号,ssh设置目录,并为每个用户设置一个密码。

http://itand.me/using-puppet-to-manage-users-passwords-and-ss

这可以在任何configurationpipe理系统中复制,而不仅仅是Puppet。