客户在这里错了,不理解他们在说什么。更改私钥上的密码短语是一个非常糟糕的主意,因为它具有非常违反直觉的安全性。
通常,用户认为他们已将其更改为“不再秘密”的密码。它们可能会成为低价值网站,在线句柄/昵称,笑话打孔线等的一次性密码,并且任何在其上书写它们的纸张都可能成为暴露的废话。
对于用于加密私钥的密码短语,它不是这样工作的!除非已撤销与该密钥相关的所有特权,否则该密码短语必须永远保持秘密(并且以下内容不适用于ssh密钥,但是如果该密码短语用于的密钥不仅用于签名,还用于接收私人消息,则永远意味着永远)。这是因为存在这样的可能性,即加密的私钥文件已被攻击者获取或存储在将来可能被攻击者获取的某个位置(如备份中)。如果密码短语曾经被泄露,那么它就会被泄露。
从某种意义上说,在其生命周期内经过N个密码短语的私钥是安全的1 / N,因为如果攻击者可以访问加密的私钥文件,则对过去密码短语中任何一个的了解都足以危害密钥。 。
现在,回到您的问题。
如果客户没有误解并误解“ ssh密码”,那么正确的做法就是永远不要向他们提出,并遵循最佳实践来自己处理密钥。但是,既然有了它们,您可能需要做一些事情才能满足他们。您可以尝试解释加密私钥的密码短语如何具有与密码不同的安全性,但是鉴于客户在这里的很多事情有多严重(密码过期通常是一个坏主意),我怀疑这种做法是否可行。
剩下的任务是使分配新密钥的系统自动化。我强烈不建议您使集中生成新密钥的系统自动化,因为绝不能在机器之间移动私钥。相反,您应该拥有流程/提醒/脚本,以使身边需要访问权限的员工/承包商可以生成新的私钥并发布相应的公钥,并使公钥分发系统(Puppet或其他方式)易于使用。您可以将它们推送到他们需要访问的系统。
另外:可能说服客户放弃的一件事是,从根本上讲,没有办法强制要求新的私钥与旧的私钥具有不同的密码,甚至根本没有密码。