![在多个服务器之间同步用户帐户](https://linux22.com/image/595880/%E5%9C%A8%E5%A4%9A%E4%B8%AA%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B9%8B%E9%97%B4%E5%90%8C%E6%AD%A5%E7%94%A8%E6%88%B7%E5%B8%90%E6%88%B7.png)
我一直想知道是否有更好的方法来管理跨多台服务器的用户帐户。
目前,我在我的家庭/开发机器上有一个主用户帐户(例如“用户”),并且对于每台服务器,我手动创建相同的“用户”帐户。然后我使用 rsync 将我的 .ssh 目录和我想要的任何其他目录复制到每台新服务器。
虽然这对于管理我当前管理的 2 台服务器来说似乎没问题,但我无法想象对 10 台以上的服务器做同样的事情,并且想知道最好的方法是什么。
谢谢!
答案1
有两种流行的方法
- 您可以设置中央身份验证(ldap,nis)。
- 您设置一个配置管理系统(puppet、chef、cfengine、shell 脚本)来自动创建帐户,并在所有管理系统上配置环境。
当所有系统都由同一组织控制时,集中式身份验证系统是不错的选择。当您拥有大量用户,并且登录后需要使用身份验证进行许多操作时,集中式身份验证系统往往是必需的。
如果您通常只需要设置少量远程管理帐户和服务帐户,则配置管理方式很好。
答案2
对于较小/较简单的部署,一个名为互联网帐户复制(IAR)可以提供帮助。它有一个简单的服务器-客户端架构,并使用 SSH 同步凭据。
答案3
我还要补充 Zoredache 的回答,NIS 不适合用于多人使用或包括任何公共访问的任何东西。NIS 有很多怪癖,很容易给 NIS 带来重大安全风险。
我已经看到了将密码哈希包含在 passwd 用户映射中的实现。
将恶意服务器注入广播的 NIS 网络也相当容易。密码映射中包含密码哈希值时尤其危险。安装 Ubuntu 机器,运行“apt-get install nis”,您就可以进入网络并获取网络上的用户列表。
答案4
解决这个问题的关键是国家情报系统是为了……而发明的。