如何在 yocto 中安全地更新 root 密码的配置?

How to securely update configuration for root password in yocto?

我们正在为 root 用户添加密码。以下是对 conf 文件的补充。

INHERIT += "extrausers"
EXTRA_USERS_PARAMS = "usermod -p $(openssl passwd abcd1234) root"

以上两行为我们完成了工作。但是问题是大家看配置文件都能知道密码是"abcd1234".

是否有任何其他方法可以在配置中安全地存储密码,或者最好的处理方法是什么。我们有成千上万的设备 运行 嵌入 Linux,如果有人能够获得 root 密码,他可以轻松访问所有设备,因为密码是相同的。处理这种情况的最佳方法是什么

完全不使用密码认证;如果您使用 ssh 访问设备,某种 public 密钥身份验证(可能与主机身份验证相结合)会更好。阅读 man ssh 中的 'Authentication' 部分。

Alexander 的回答是最佳实践。

如果你真的需要在你的配置中使用密码,你至少可以存储加密的变体(在你的例子中采用 openssl 的输出,但我会使用一些更强大的算法),即:

EXTRA_USERS_PARAMS = "\
    usermod -p '$6$ca1gxiMTHxfATDYV$PpXt8OeIiBY8xJX1qh66Sq1oC5tIthrhzo9dq6ILerp.vg7xdkHpLGbM.PKgh./r2J1lkSmHXT2Xhq/ZKr0XF.' root; \
"

请注意 $ 的转义(以及任何其他特殊字符,如果存在),因为加密密码由 shell 解释。 (上面的例子中有真实的密码,但是是一个很弱的密码。)

顺便说一句,我有没有提到亚历山大的回答是最佳实践 ;-)?