跨服务器的 ssh 密钥

跨服务器的 ssh 密钥

我有一个 Web 应用程序,它像 github 或 gitorious 一样通过浏览器获取用户的 ssh 公钥。它通过将密钥放在用户主目录中来授予用户 ssh 访问权限。

现在我想将此密钥复制到其他服务器,以授予用户对其他服务器的访问权限。 有没有合理的方法可以做到这一点并根据需要将此 ssh 密钥复制到其他服务器?

我将公钥存储在数据库中。

有一个 ldap 服务器,其中包含所有用户的帐户。后端有几个服务器,如 git 服务器、测试服务器、部署服务器等。并且 Web 应用程序和 git 服务器位于同一节点上。

现在密钥正在添加到 git 服务器中,我想将 ssh 密钥自动放在测试和部署服务器上,以便他们可以在那里登录。听说过一种叫做 keychain 的东西,但完全不明白。keychain 能帮助我进行服务器间通信吗?希望我现在说得对。

答案1

由于您使用 ldap 进行身份验证,因此您可以考虑使用 ssh 补丁,允许在身份验证期间使用授权密钥。这样您根本不需要分发密钥。

http://code.google.com/p/openssh-lpk/

否则,由于您正在使用 git,您可以将用户文件夹和授权密钥保存在 git 中,并定期执行 git pull 以添加它们。

答案2

在 ldap 中有一个通过 ssh 验证用户的模式,如果您的 ssh 版本低于 6.2,则必须使用“openssh-lpk”对其进行修补,对于 openssh 版本 6.2,您无需修补。完成此设置后,您可以使用 ssh-agent 解决您的实际问题。

相关内容