Как сделать ssh-add читать парольную фразу из файла?
Я пытаюсь добавить ключ в ssh-agent и хочу ssh-add прочитать пароль из файла, используя. Как это возможно?
Как мне автоматизировать этот процесс из оболочки script?
Ответ 1
В зависимости от вашего дистрибутива и версии ssh-add вы можете или не использовать опцию -p ssh-add, которая считывает кодовую фразу из stdin таким образом:
cat passfile | ssh-add -p keyfile
Если это не работает, вы можете использовать Expect, инструмент Unix, чтобы интерактивные приложения не были интерактивными. Вам нужно будет установить его из диспетчера пакетов.
Я написал инструмент для вас в ожидании. Просто скопируйте содержимое в файл с именем ssh-add-pass и установите для него исполняемые разрешения (chmod +x ssh-add-pass). Вы также можете скопировать его в /usr/bin или/usr/local/bin, чтобы быть доступным из поиска $PATH.
где ps.sh - это, в основном, ваш script печать вашей кодовой фразы. См.: man ssh-add.
Чтобы сделать его более безопасным (чтобы не хранить его в том же файле), используйте mktemp для генерации случайного частного файла, сделайте его выполнимым (chmod) и убедитесь, что он выдает кодовую фразу на стандартный вывод после выполнения.