Подтвердить что ты не робот

Как отправить пароль, используя пакетный файл sftp

Я пытаюсь загрузить файл с сайта sftp с помощью пакета script. Я получаю следующую ошибку:

Permission denied (publickey,password,keyboard-interactive).
Couldn't read packet: Connection reset by peer

При выполнении команды:

sftp -b /home/batchfile.sftp <user>@<server ip>:<folder>

batchfile.sftp включает следующие данные:

password
lcd [local folder]
cd [sftp server folder]
get *
bye

Примечание: он работает при запуске в приглашении как

sftp <user>@<server ip>:<folder>

Но мне нужна возможность автоматически вводить пароль.

4b9b3361

Ответ 1

Вы хотите установить программу sshpass. Тогда:

sshpass -p YOUR_PASSWORD sftp -oBatchMode=no -b YOUR_COMMAND_FILE_PATH [email protected]

Очевидно, что лучше настроить аутентификацию открытого ключа. Используйте это только в том случае, если это невозможно сделать по любой причине.

Ответ 2

Если вы создаете кучу команд, которые должны быть запущены, вызовите это script из терминала, вы можете попробовать следующее.

sftp [email protected] < /path/to/command/list

Затем вам будет предложено ввести ваш пароль (как обычно), однако после этого будут выполняться все команды в script.

Это явно не полностью автоматизированная опция, которая может использоваться в задании cron, но может использоваться с терминала.

Ответ 3

Я советую вам запустить sftp с опцией -v. Становится намного легче понять, что происходит.

В руководстве четко указано:

Окончательный формат использования позволяет использовать автоматические сеансы с использованием -b вариант.      В таких случаях необходимо настроить неинтерактивную аутентификацию       чтобы избежать необходимости вводить пароль во время подключения (см.      sshd (8) и ssh-keygen (1)).

Другими словами, вы должны установить аутентификацию публики. Затем вы сможете запустить пакет script.

P.S. Неправильно вводить пароль в пакетный файл.

Ответ 4

Вы говорите о командных файлах, правильно ли я предполагаю, что вы говорите о системе Windows? Если это так, вы не можете использовать sshpass, и вам придется переключиться на другой вариант.

Два из таких вариантов, которые следуют диаметрально противоположным философиям:

  • psftp: инструмент командной строки, который вы можете вызывать из своих скриптов; psftp является частью пакета PuTTY, и вы можете найти его здесь http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
  • Syncplify.me FTP Script: скриптовый FTP/S и SFTP-клиент для Windows, который позволяет вам хранить ваш пароль в зашифрованных "файлах профиля"; посмотрите здесь http://www.syncplify.me/products/ftp-script/

В любом случае настоятельно рекомендуется переключение с паролей на аутентификацию PKI.