Как я могу вызвать подсказку для ssh ключевого пароля во время выполнения сценария?

Вот способ считать stdin и разделение на новых строках, сохраняя пробел в целости:

Я протестировал с тире

#!/bin/dash
while IFS= read -r line; do
    set -- "$@" "$line"
done
printf "have arg '%s'\n" "$@"
3
21.01.2015, 06:50
2 ответа

Сначала вы можете проверить, работает SSH-Agent и запустить его, если нет:

if ! [ -n "$SSH_AUTH_SOCK" ] || 
  ! { ssh-add -l &>/dev/null; rc=$?; [ "$rc" -eq 0 ] || [ "$rc" -eq 1 ];}; then
    echo "Starting agent..."
    eval "$(ssh-agent -s)"
fi

SSH-Add -L выходит с кодом 1 Если нет идентичностей и с кодом 2, если он не может подключиться к SSH-агенту .

Затем вы добавляете пароль для ключевого ключа.

ssh-add ~/path/to/keyfile
3
27.01.2020, 21:14

Идея SSH-Agent состоит в том, чтобы запустить службу, хранящую все ваши клавиши. Поэтому вам нужно только ввести пароль один раз, и вы даже можете переслать свой агент на удаленный хост, если вы хотите войти на второй хост оттуда.

Сначала проверяйте, что SSH-Agent работает с использованием SSH-Add -l , который, вероятно, говорит: «У агента нет идентичности».

Вторых, вы добавляете клавиши к вашему Агент, говоря SSH-Add или Путь / к / ключей / файл / файл .

После этого rsync, как и любая другая команда, использующая SSH, будет просто использовать агент для получения ключа, необходимого для удаленного подключения.

3
27.01.2020, 21:14

Теги

Похожие вопросы