在 bash 脚本中指定非交互模式的 root 密码

specify root password with no-interactive mode into bash script

我已经在使用 Packer 和 Ubuntu 14 创建 vagrant box 时指定了 root 密码,将此命令处理到脚本配置中:echo "root:vagrant"|chpasswd

但我想用基于 Ubuntu 16.04 的新 vagrant box 来做到这一点。不幸的是,这个命令没有 运行,我必须使用 SSH 连接到我的虚拟机并手动指定我的密码 root :sudo passwd

我不要这一步配置密码。我如何使用加壳程序和配置脚本 sh 做到这一点?使用非交互模式指定 root 密码 ?

您可以:

1) 在您的 preseed.cfg 文件中设置它:

d-i passwd/root-password-again password vagrant
d-i passwd/root-password password vagrant

bento: Debian 8 - Example

2) 或者在boot_command中设置为预置参数:

"passwd/root-password={{ user `root_password` }} ",
"passwd/root-password-again={{ user `root_password` }} ",

其中 root_password 是 Packer 用户变量。请参阅 boxcutter/ubuntu: Ubuntu Template(在此示例中,设置的是 vagrant 用户的密码,而不是 root


PTY:见Wikipedia: Pseudoterminal and Packer Documentation: SSH PTY