允许开发人员部署到服务器,但不能login(ssh)到服务器

这可能是不可能的,但这是我想要的:

  • 允许开发人员通过Capistranologin到服务器,以便他可以部署更改。 例如cap deploy
  • 不使用Capistrano时,请勿让开发人员login服务器。 例如ssh user@server

更多信息:我们的开发人员使用Capistrano部署到我们的服务器。 运行cap deploy或类似的命令Capistrano使用传递给开发人员的密钥login到服务器(ssh)并运行一些命令。

我想这样做的理由:安全和厨师正在用来pipe理服务器(不希望在厨师之外进行更改)。

这可能吗?

您可以在authorized_keys文件中以不同的方式限制某些密钥, from=可以限制可以使用该密钥的主机, command=允许您定义某个命令,如果需要多个命令,则可以写一个脚本,或者添加多个键。

尝试使用该密钥的任何其他types的访问将不起作用。

这个网页有一些很好的解释,如何和限制。

将呼叫包装在networking服务中。 一个简单的PHP脚本可以调用所需的命令,并通过任何数量的授权模式通过Apache保护。

这种方法也可以和其他系统如CI / CD一起使用。