在 Linux 服务器上缓存主密码

在 Linux 服务器上缓存主密码

我正在尝试使用钥匙链在 Debian 最新稳定版上有一些困难。在网上搜索时,我找不到解决方案,但认为在这种情况下,不同的方法或不同的工具可能会更好。

我想要实现一些相当直接的目标:

  • 重新启动后以 root 身份登录服务器时,系统会提示用户输入主密码 一次
  • 该密码被加载到内存中并用于解锁两个都the ssh private key(用于从远程 git 存储库提取代码、远程身份验证等)和 a gpg private key(用于解密也来自 git 的一些配置参数)。

这样,只有能够访问 root 帐户或能够转储内存才能提取密码。一旦服务器重新启动,密码就会被清除。我没有 HSM 或任何更复杂的东西的预算/资源。我想要一些简单、便宜、工作可靠、安全的东西。

钥匙串似乎是一个不错的选择,但我无法让它正常工作来满足这两个要求。也就是说,它要求密码两次,并且当尝试使用 gpg 解密某些内容时,它会第三次要求密码...有没有办法使用钥匙串或任何其他工具或 shell 脚本安全地实现此目的?

[ps 不确定这是否属于 ServerFault 还是这里]

答案1

使用单独的加密文件系统(实际上可以存储在常规文件中并通过 dm 挂载)。从安全角度来看,文件系统访问权限将执行与将其保存在正在运行的进程的虚拟内存中相同的技巧 - 两者都可以由 root 访问(除非您采取一些额外的措施来防止这种情况)。实际上,与将密码缓存在代理助手中的情况相比,密码最终出现在交换中的可能性应该更小;但如果安全是您主要关心的问题,您无论如何都应该对交换区进行加密(或完全禁用)。

相关内容