Есть аналогичные вопросы о stackoverflow, но они либо не имеют ответа, либо используют какой-либо язык (C#, Python, ...). Я пытаюсь выполнить команду на удаленной машине с помощью ssh и вернуть выход консоли на локальный компьютер. Ниже команда У меня возникли проблемы:Выполнять команду внутри сценария оболочки на удаленной машине и получать выходные данные на локальном компьютере
sshpass -p $password 'find /home/pi/Transmission_Downloads/ -type f \(-iname "*.mp4" -o -iname "*.mkv" -o -iname "*.avi" \) -newermt "2016-02-01"' [email protected]
Когда я пытаюсь выполнить его в моем сценарии я получаю «sshpass: Не удалось выполнить команду: Нет такого файла или каталога» ошибки.
Что я пытаюсь достичь: извлеките с сервера список новых загруженных файлов (фильмы и телешоу), чтобы позже вытащить их с сервера с помощью rsync.
Есть ли способ, которым я могу достичь этого, используя только пароль, или я должен использовать общедоступные/закрытые ключи для доступа к серверу?
Моя локальная машина использует Ubuntu 14.04 (рабочий стол), а на моем сервере работает Raspbian.
Проблема в том, что мне придется создавать общедоступные/закрытые ключи для каждого компьютера, который мне нужен для перемещения файлов. Есть ли способ достичь этого с помощью пароля (например, sshpass)? –
Другой способ сделать это может быть «ожидать», см.: [Использовать в сценарии bash для указания пароля для команды SSH] (http://stackoverflow.com/questions/4780893/use-expect-in-bash- сценарий к предоставлять-пароль-к-SSH-команды). Сколько компьютеров вы имеете дело? Для 5-10 компьютеров настройка SSH-ключей будет довольно быстрой, и после этого все будет очень просто. И прежде всего ключи SSH более безопасны, чем отправка сырых паролей по сети. –
Является ли это только мной, или используя SSH-ключи, добавляет небольшую задержку (1 ~ 3 секунды) во время авторизации? –