Я хотел бы автоматизировать скрипт bash, который подключается к серверу с помощью sftp и передает передачу файла. У меня есть пароль для этого, и сначала я пытался для этогопередать пароль sftp в сценарии bash
sftp [email protected]$host << EOF
<passwd_here>
cd $dir
get $file
quit
EOF
, но он по-прежнему будет предложено ввести пароль, и мне пришлось ввести его вручную в командной строке.
После поиска SO, я нашел this post, который имел решение с expect
, который я попробовал, и я получил следующее сообщение об ошибке:
Сценарий:
sftp -b cmdfile.txt [email protected]$host
expect "Password:"
send "<passwd>\n";
interact
Ошибка:
Permission denied (publickey,keyboard-interactive).
cmdfile.txt
cd $dir
get $file
quit
Пожалуйста, дайте мне знать, как подключиться с помощью пароля в сценарии bash?
Лучше 'ожидать scripts' может быть написано, но я предложил бы получить sshpass на клиентском хосте. sshpass более защищен и меньше подвержен ошибкам, чем sftp. – anubhava