启动时无法将密码发送到 scp 提示符

启动时无法将密码发送到 scp 提示符

我有带加密分区的 Ubuntu 操作系统。在启动期间,我想使用 scp 从远程服务器下载密钥文件并使用它来解密分区。

我做了什么:

/etc/initramfs-tools/hooks/myhook.sh

#PREREQS blah blah

mkdir ${DESTDIR}/usr
mkdir ${DESTDIR}/usr/bin
cp -pnL /usr/local/bin/dropbearmulti ${DESTDIR}/bin/dropbearmulti #compiled dropbear ssh/scp client
cp -pnL /etc/initramfs-tools/root/.ssh/* ${DESTDIR}/root/.ssh #copy keys/known_hosts to image

/etc/initramfs-tools/scripts/local-top/myscript.sh

ln -s /bin/dropbearmulti /usr/bin/dbclient #symlink for dbclient (need to make scp work)
export HOME=/root
/bin/dropbearmulti scp user@host:/home/user/file /tmp/file
#HERE I NEED TO READ PASSWORD FOR SCP

网络已配置,一切正常。执行时scp,我看到提示需要输入密码,但我无法输入密码(它挂起了),启动过程卡住了。

我曾尝试使用plymouth

/bin/plymouth ask-for-password --prompt "Specify password: " | /bin/dropbearmulti scp user@host:/home/user/file /tmp/file

它要求输入密码,我可以输入并提交,但它没有将密码传递给 scp(scp 再次要求输入密码并卡住了)

如何将密码从标准输入传递到scp命令?

谢谢

答案1

我不知道您需要多少安全性,但一种选择是通过 HTTPS 在受密码保护的目录中提供密钥文件。您可以在 initramfs 中包含 curl 并使用它来下载密钥文件。我猜接受来自各种来源的密码会比 SSH 更省事。

相关内容