在EC2上,我可以集中pipe理SSH密钥吗?

我在EC2上有几个远程开发人员和几个服务器。 有没有一种方法可以集中pipe理EC2上的authorized_keys文件,而不必在每台服务器上手动添encryption钥?

如果你设法设置你的基本镜像作为Puppet客户端,你可以使用ssh_authorized_key指令 ,甚至直接使用文件typespipe理模板文件,并将其推送到.ssh/authorized_keys文件。

木偶还包括通过EC2来pipe理configuration的实用程序,所以你可以真正把它做成一个一站式的商店。

一种select是设置一个小实例,为所有开发者提供访问这台机器的权限。 他们SSH到它,机器有一个授权的SSH密钥,允许他们访问所有其他机器。 然后,您可以在计算机上使用防火墙来阻止来自其他IP地址的SSHlogin。

另一个select是设置像Puppet这样的东西,它可以为你pipe理authorized_keys文件。

还有一种select是设置一个脚本,在一台机器上更改authorized_key文件时,将其同步到所有主机上。 你可以使用像lsyncd这样的自动化。

请记住,仅仅因为你撤消了一个开发人员的SSH密钥,并不意味着你已经删除了他们对该机器的任何访问权限。 具有SSH访问权限的恶意用户可能会设置类似于反向shell的内容,或者为他们正在处理的代码添加各种types的后门程序。

我结束了向SSH添encryption码authentication,所以我可以用服务器上的用户名和密码进行pipe理。 会有兴趣看看其他人如何接近这一点。

您可以使用LDAP ,但是您需要应用OpenSSH补丁并自行构build。 但是,您也可以获得集中的帐户pipe理。

pipe理SSH实例的密钥是非常困难的,而且我还没有find简单的解决scheme。 RightScale和Scalr等云pipe理软件解决了这类问题。 Scalr使用安全密钥访问提供对您的任何实例的一键SSH访问,并允许您在丢失密钥的情况下重新下载密钥。 Scalr是开放源代码或通过托pipe版本在线提供。

PS:我在Scalr工作

Userify.compipe理用户帐户,SSH密钥和sudoangular色。

使用AWS的用户数据(在实例启动的“高级”选项卡下)进行部署非常简单,或者在用户自定义组的UserData脚本中,或者手动启动实例时,都可以很容易地进行部署,这是非常棒的,login(或者你可以将一行代码粘贴到你的服务器控制台中,但是这并不是那么有趣)

它也支持厨师和类似的东西,每个用户(开发人员/pipe理员等)都有自己的networkinglogin来更新密钥。 这是非常痛苦的。