我正在寻找一个很好的SSH密码/密钥设置多个服务器的系统pipe理。
理想的是可以同时舒适和安全的,但是在思考了很多问题之后,似乎没有任何解决办法可以接受。
基本上我来到这2个设置:
每个服务器都有一个强大的(和唯一的)根密码。 为了pipe理他们,而不是logging密码,我添加了一个密码的公钥到他们的授权密钥。
我可以从任何一台计算机上使用私钥/私钥密码的组合login到所有人。
问题:允许直接rootlogin。
另一个:
直接rootlogin被禁用。 与私钥相同的设置才能以su权限login到用户帐户。 以用户身份login后,使用su以root身份login(必须键入root密码)。
问题。 检索每个服务器的root密码不太舒服。 更舒适的是,使用一个用于所有root密码(考虑到不允许直接rootlogin)。
你觉得什么更好? 你知道还有其他好的设置吗? 提前致谢!
你有没有考虑只是禁用root帐户,但允许sudo? 这样,每个pipe理员需要知道的唯一密码是他或她自己的,所有的访问都logging到个人,而密钥pipe理完全是可选的。
在每台服务器上为每个pipe理员分配自己的帐户,并使用sudo而不是su访问受root限制的内容。 然后,您可以使用公钥/私钥对或任何其他身份validation方法login到服务器。
切线相关,取决于服务器数量,pipe理员数量以及所有pipe理员是否需要在所有服务器上访问,请考虑一个configurationpipe理系统,如bcfg2,cfengine,lcfg或puppet等configurationpipe理系统。 您可以从小处着手,pipe理pipe理员帐户和密钥以及使用sshd_config中的AllowUsers和AllowGroups指令来限制sshlogin。
通常没有足够的时间来学习configuration或部署一个CM系统,但是如果你的目标是一个2-3台机器的testing组并开始pipe理简单的事情(静态文件像authorized_keys,resolv.conf等)你会惊奇地发现它可以快速实现并准备部署到更多的系统。 随着越来越多的系统被置于中央pipe理之下,您也会对将出现的微妙的错误configuration感到惊讶。
这与设置root访问权限有什么关系? 简单:一旦您从中央系统pipe理configuration,pipe理密钥和访问就会更快更轻松。 审计简化,对您而言可能并不重要。 此外,如果您将CM系统与自动构build系统(如Kickstart或Jumpstart)结合使用,则可以严重减less备份开销和服务器部署时间。 访问控制是configurationpipe理的一个重要方面, 有时可以看到一个更大的图景。
除了sudo解决scheme之外,还可以使用公钥authentication和ssh-agent。 你甚至不必每次都input密码来SSH服务器。 看到这里