Не удается отправить пароль на приглашение 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 в защищенном паролем каталоге. Вы можете включить curl в initramfs и использовать его для загрузки файла ключа. Я думаю, что было бы менее громоздким, чем SSH, принимать пароли из различных источников.

Другие вопросы по тегам