grub2-mkpasswd-pbkdf2 - 它可以接受标准输入吗?

grub2-mkpasswd-pbkdf2 - can it accept standard input?

在 CentOS 6 上,我们目前使用 password --md5 选项加密 grub 密码,我们可以将其编写到我们的标准服务器构建中。

我们正忙于迁移到 CentOS 7,看来 password --md5 选项已在 grub2 中删除并替换为 grub2-mkpasswd-pbkdf2

虽然我欢迎改进的安全性,但我找不到通过标准输入将密码传递给 grub2-mkpasswd-pbkdf2 命令的方法,而且 grub2 似乎已经删除了对 md5 的支持,md5 的组合破坏了我们的脚本构建自动化。

任何人都可以帮助:

  1. 一种通过标准输入将密码传递给 grub2-mkpasswd-pbkdf2 的方法?;或
  2. 接受标准输入的 grub2-mkpasswd-pbkdf2 替代 pbkdf2 生成实用程序?;或
  3. grub2 使用 --md5 的机制?

我最近编写了一个工具来执行此操作——也就是说,能够更轻松地以非交互方式生成 GRUB2 哈希,并且能够在 RHEL6 上执行此操作。在 GitHub.

在自述文件中,您还将看到有关如何使用标准 grub2-mkpasswd-pbkdf2 通过用换行符传递两次密码以非交互方式生成哈希值的说明。

grub-mkpassswd-pbkdf2password (twice) from stdin.

如果您的密码在 $passwd:

passwd="my test password"

您可以通过以下方式获取哈希值:(使用 bash 作为您的 shell)

echo -e "$passwd\n$passwd" | LC_ALL=C /usr/bin/grub-mkpasswd-pbkdf2 | awk '/hash of / {print $NF}'

AWK 打印与给定模式匹配的行的最后一个字段,即散列。语言环境被强制为默认语言环境 (C),以防消息被翻译成其他语言环境。