是否有可能在中央服务器上存储ssh公钥id_dsa.pub

我想知道是否有可能将用于sshlogin的公钥存储在集中式服务器上,并让所有login的服务器指向这个集中式服务器来获取我的公钥。 所以,我不必将我的公钥复制到每个服务器我login,如果这是可能的如何使用ssh代理和钥匙串组合使用,以减less次数,我需要冲入login到服务器。 我不想使用无密码的私钥,因为我非常担心我的证书落入了错误的手中。

另一个解决scheme是出口资源和木偶。

程序

  1. 将公共ssh密钥放置在puppet服务器上
  2. configuration导出的资源将文件放置在$HOME/.ssh/authorized_keys
  3. 收集所有其他箱子上的钥匙

这需要一个集中的木偶基础设施和一个服务器。 导出的资源只能用于puppet服务器(几乎所有的howtos和documentation都是默认设置)

参考

我宁愿修补SSH,因为你可以用这种方式与你的默认发行版软件包一起工作,而不必诉诸于你的软件包(然后引入在所有主机上安装该软件包的问题,​​甚至是需要configurationyum或apt了解它)。

木偶也需要触摸每一个主机。 但是只有一次,之后你可以pipe理你所有的工作站。 是的:它可以与厨师,bcfg2或cfengine(或花式ssh for循环)我只是喜欢傀儡比其他选项。

另外:这不是一个5分钟,我完成解决scheme。 但是,一旦你pipe理你的主机,你会问自己为什么这一切都开始于SSH密钥,你不需要login(完美的世界)

编辑:只读在上面/下面的评论(取决于你的sorting),你不能控制一切。 我build议你仔细看看,并决定是否值得引入类似的东西。 结构可能是一种替代scheme,因为您可以使用一个密码input在大量主机上运行命令,因此只需input一次密码并分发密钥,然后即使没有密码也可以运行结构,如果您find其他用途。

解决这个问题的一个方法是将你的公共ssh密钥存储在ldap服务器上。 我不确定是否有任何ssh实现有内置的,但是你可以使用OpenSSH和OpenSSH-LPK补丁来完成这个工作。 我没有尝试过,大概只有在你已经build立了ldap基础架构的情况下才有效。

您可以通过自动挂载安装您的主目录。 这样,你将有一个你的公钥副本跟随你login到哪个服务器。

两个答案:

  1. 是的,理论上你可以用一些非常丑陋的符号链接和NFS服务器来实现。 使用/ etc / skel目录将符号链接复制到某个NFS挂载的.ssh目录。 这可能会带来各种各样的其他真正令人讨厌的反响,而不是你应该做的。

  2. 如果您希望做的是能够login到任何一台login后无密码权限的计算机,并且您已经拥有LDAP服务器设置,那么您和您的LDAPpipe理员应该考虑将LDAP与Kerberos相结合。 一旦设置完成,您将拥有所谓的单点login(SSO)解决scheme – 一旦您被授予login到一台机器的“票证”,该票证就可以安全地转发到您login的任何其他机器至。