bash загрузка файла на удаленный сервер через sftp

Нужно дублировать бекапы на удаленный сервер, нашел решение, позволяющее делать это через ftp


ftp -n  server.com  <<END_SCRIPT
    quote USER  username
    quote PASS password
    dir
    ascii
    put /home/file.gz file.gz
    dir
    quit
END_SCRIPT
exit 0
 


Каким образом можно передавать файл через sftp? После замены ftp на sftp и удаления ключа -n скрипт при запуске запрашивает пароль. На баше никогда раньше не писал, не могу найти подходящее решение.

1 ответов



Автоматом указать пароль не получится. Надо настраивать беспарольное подключение. Для этого надо обменяться публичными ключами. Сам такое не делал, поэтому отправляю в гугл. Вот, для примера.


Может быть проще и использовать scp ?

Тогда команда будет выглядеть:


scp file.gz server:/path/to
 
Предварительно настроить ssh что-бы не спрашивало пароль