Security 存储ssh登录的私钥信息和密码

Security 存储ssh登录的私钥信息和密码,security,encryption,ssh,Security,Encryption,Ssh,好的,我正在开发一个系统,用于管理一组VP。这包括日常维护任务以及资源分配 为了实现这一点,我的控制服务器需要连接到各种服务器。我经常使用ssh公钥/私钥,这似乎是从控制服务器连接到从属服务器的最合乎逻辑的方式 现在,让我们假设控制服务器尽可能安全。我的问题是,如何将私钥安全地存储到控制服务器,以及从服务器的根密码(假设禁用了直接根登录) 我觉得加固服务器是最好的防御,因为一旦服务器被破坏,战斗可能会失败。我知道没有一个方案是万无一失的,但最佳实践是什么?我们之前使用的一个解决方案是不让控制服务

好的,我正在开发一个系统,用于管理一组VP。这包括日常维护任务以及资源分配

为了实现这一点,我的控制服务器需要连接到各种服务器。我经常使用ssh公钥/私钥,这似乎是从控制服务器连接到从属服务器的最合乎逻辑的方式

现在,让我们假设控制服务器尽可能安全。我的问题是,如何将私钥安全地存储到控制服务器,以及从服务器的根密码(假设禁用了直接根登录)


我觉得加固服务器是最好的防御,因为一旦服务器被破坏,战斗可能会失败。我知道没有一个方案是万无一失的,但最佳实践是什么?

我们之前使用的一个解决方案是不让控制服务器直接在从属服务器上执行命令,而是让从属服务器上的守护进程/脚本从控制节点中提取任务列表并执行它们。通过这种方式,您不需要存储特权信息,只需要授予从机访问“待办事项列表”的权限

一个基本的实现将只是一个由从机访问的数据库,但您也可以使用客户机-服务器体系结构


如果希望服务器通过SSH连接到从属服务器,则可以使用
sudo
提升权限,它具有其他功能,例如限制特定用户可以使用提升的权限运行的命令。正如您已经提到的,存储密码是非常棘手的,因为它们必须在某一点或另一点可用

我们之前使用的一种解决方案是,实际上不让控制服务器直接在从属服务器上执行命令,而是让从属服务器上的守护进程/脚本从控制节点中提取任务列表并执行它们。通过这种方式,您不需要存储特权信息,只需要授予从机访问“待办事项列表”的权限

一个基本的实现将只是一个由从机访问的数据库,但您也可以使用客户机-服务器体系结构

如果希望服务器通过SSH连接到从属服务器,则可以使用
sudo
提升权限,它具有其他功能,例如限制特定用户可以使用提升的权限运行的命令。正如您已经提到的,存储密码是非常棘手的,因为它们必须在某一点或另一点可用