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

时间:2019-02-12 10:57:48

标签: linux security passwords embedded-linux yocto

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

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

以上两行为我们完成了工作。但是问题是每个读取配置文件的人都可以知道密码为“ abcd1234”。

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

2 个答案:

答案 0 :(得分:2)

完全不使用密码验证;如果使用ssh访问设备,则最好使用某种公共密钥身份验证(可能与主机身份验证结合使用)。阅读man ssh中的“身份验证”部分。

答案 1 :(得分:2)

亚历山大的答案是最佳实践。

如果确实需要在配置中输入密码,则至少可以存储加密的变体(在示例中使用openssl的输出,但是我会使用更强大的算法),即:

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

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

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